Opérateur ternaire avec plusieurs instructions
J'ai un flux de programme comme suit:
if(a)
{
if((a > b) || (a > c))
{
doSomething();
}
statementX;
statementY;
}
J'ai besoin de le traduire dans une expression conditionnelle, et c'est ce que j'ai fait:
(a) ? (((a > b) || (a > c)) ? doSomething() : something_else) : something_else;
Où dois-je insérer les états statementX, statementY? Comme il est tenu de l'exécuter dans les deux cas possibles, je ne peux pas vraiment trouver un moyen.
Pourquoi? Il me semble plus lisible dans sa première forme!..
Votre
Même si je suis prêt à tout pour le laconique de la nature de l'opérateur ternaire, j'ai rarement l'utiliser comme Joe mentionné, il crampes lisibilité.
Aussi, vous ne pouvez pas traiter les déclarations que les expressions, de sorte que vous obtenez même une erreur du compilateur.
Qui vous a donné une telle "mission"?
Votre
if
s ont pas else
s, donc à l'aide d'un opérateur ternaire, ce n'est pas une bonne solution pour le problème.Même si je suis prêt à tout pour le laconique de la nature de l'opérateur ternaire, j'ai rarement l'utiliser comme Joe mentionné, il crampes lisibilité.
Aussi, vous ne pouvez pas traiter les déclarations que les expressions, de sorte que vous obtenez même une erreur du compilateur.
Qui vous a donné une telle "mission"?
OriginalL'auteur user2053912 | 2013-02-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser des virgules
,
opérateur comme ceci:Le programme suivant:
d'impression pour moi:
href="http://en.wikipedia.org/wiki/Comma_operator" >en.wikipedia.org/wiki/Comma_operator
Merci pour le lien.
OriginalL'auteur Mikhail Vladimirov
Vu que vous êtes l'exécution d'instructions et de ne pas céder, je collerais avec le
if()
condition. C'est aussi sans doute plus lisible pour quelqu'un d'autre qui peut venir à travers ce morceau de code.faire quelque chose en une ligne peut sembler agréable, mais en termes de perte de lisibilité, il ne vaut pas la peine (il n'y a pas d'augmentation de la performance).
OriginalL'auteur Brad Christie
Vous pouvez imbriquer opérateur Ternaire états
Le code ci-dessus , peut être remplacé par
L'Avantage Évident ici est d'être en mesure de réduire le nombre de lignes de code pour une même logique , mais en même temps, diminue la lisibilité du code.
OriginalL'auteur Barath Ravikumar