6
votes

Combien de conditions peut-on vérifier si

Combien de conditions peut-on vérifier si vous voulez? Par exemple,

if(a==1)
    if(b==1)


7 commentaires

S'il vous plaît poser une question par question.


Techniquement, 1 condition est évaluée à l'intérieur d'un si , ce qui se passe par ascension est 1 condition est évalué et son résultat est évalué avec le prochain et ainsi de suite ...


1) Il n'y a pas de limite. 2) les deux sont les mêmes


Il n'y a pas de limite définie à la longueur d'une expression booléenne; Probablement, vous rencontrerez des problèmes de mémoire à un moment donné. Pour votre deuxième question, voir: Stackoverflow.com/Questtions/5259938/...


Techniquement, ce que vous avez n'est qu'une seule déclaration conditionnelle; Entrantant plusieurs déclarations de comparaison avec et reste une déclaration conditionnelle, elle ne varie que dans la complexité.


Merci @elgavilan - j'ai corrigé le libellé pour le refléter.


@Poldie Mes excuses, mais j'essayais essentiellement de voir s'il y avait des mérites par rapport à l'une des deux options respectivement, car elle est typiquement imbriquée si elle est enseignée par opposition aux cordes de conditions.


4 Réponses :


8
votes

Il n'y a pas de limite explicite, autant que je sache. La limite pratique est que la lisibilité devient une question.

La limite réelle du code est probablement causée par le fait qu'une méthode Java ne peut contenir qu'environ 64 kib de bytecode.

Vos derniers blocs de code font la même chose (en supposant qu'il n'y a qu'un seul bloc de code ou une déclaration après eux). Ils ne seront différents que si un sinon était impliqué.


0 commentaires

2
votes

Je ne suis pas sûr de la quantité de la déclaration dans une clause si mais que les performances entre les deux syntaxes sont identiques. Le compilateur génère le même bytecode, quelle que soit la syntaxe que vous utilisez.


1 commentaires

Il sera préférable que vous prouviez que le bytecode généré pour les deux pièces de code est le même ici dans votre message.



8
votes

Il n'y a pas de limitation à l'amounth des déclarations conditionnelles dans un Si. En outre, il n'y a aucune amélioration de la performance dans l'un ou l'autre des deux blocs.

La plus grande différence entre les deux est que vous n'avez pas de contrôle sur quelle condition a échoué avec le premier.

Exemple: xxx

autre: xxx


0 commentaires

2
votes

Un java si instruction peut tester exactement une condition:

si ( booléen-expression ) relève [ ele déclaration ]

le a == 1 && b == 1 && c == 1 && ... && n == 1 Dans votre exemple est un expression booléenne et, Comme d'autres l'ont déjà dit, il n'y a pas de limite difficile sur la manière dont une expression booléenne complexe est autorisée.


0 commentaires