6
votes

Quelle est la version longue des "blocs [I] [J] .Ciscolorbox ()? Paysecolor: BackgroundColor"?

J'ai lu cette ligne de code: blocks [i] [j] .Ciscolorbox ()? Piececolor: BackgroundColor Et je me demande quel est son si contrepartie de l'instruction. Ou si c'est vraiment un si instruction. Je suis nouveau dans la programmation et j'apprends toujours la langue. Merci!


0 commentaires

3 Réponses :


2
votes

C'est un peu comme (en fonction de ce que vous faites avec le résultat) xxx

E.g. Si c'est une affectation, alors xxx

est comme xxx

de la spécification 15.25 Opérateur conditionnel? :

L'opérateur conditionnel? : utilise la valeur booléenne d'une expression pour décider laquelle de deux autres expressions devrait être évaluée.

donc, b? C: D est comme une expression avec condition pour laquelle le résultat de l'évaluation de l'expression serait le résultat de l'évaluation de la deuxième expression C si le résultat de l'évaluation de la première expression < Code> B est vrai, sinon c'est le résultat de l'évaluation de la soif expression d .


0 commentaires

2
votes

Quelque chose le long de ces lignes, si vous retournez la valeur de couleur à la fin d'une méthode: xxx

ou si vous attribuez la valeur de couleur à une variable: xxx

de chaque sens, la version "longue" d'un Expression conditionnelle (AKA Opérateur ternaire du formulaire ?: ) serait d'utiliser un si / el / sinon> et faire quelque chose avec les valeurs. Notez que la différence fondamentale entre un si / sinon et une expression conditionnelle est que le premier est une déclaration sans une valeur alors que le plus tard est une expression qui évalue la valeur de la valeur de ses opérandes.


1 commentaires

Il est intéressant de noter que si / sinon étant une déclaration au lieu d'une expression est un choix de conception arbitraire. Par exemple, SCALA n'a que de Java ?: expression, mais c'est orthographié si / ele :) c'est-à-dire, dans Scala, vous pouvez dire quelqueevariable = si (blocs [ I] [J] .Checolorbox ()) Bassin arrière-plan eus el / code>.



1
votes

? est le opérateur ternaire , et il est quelque peu analogue à un si -Statement. Fondamentalement, xxx

signifie "si bool est vrai, puis utilisez la valeur A , sinon utilisez la valeur b B ". Dans votre cas: xxx

signifie "si bloque [i] [j]. Ciscolorbox () est vrai, utilisez trueecolor , utilisez sinon utiliser BackgroundColor ".


Par conséquent, les suivants sont généralement équivalents: xxx

et xxx


0 commentaires