J'essaie d'exécuter tout en boucle jusqu'à ce que l'utilisateur entrait oui ou non
pourquoi ne peut-il pas y avoir une ou dans la fonction de test au lieu de et? p>
en utilisant ou, peut être soit oui code> ou
non code>. p>
3 Réponses :
parce que Pour en faire un ou vous pouvez le faire comme: p> ce qui signifie, tandis que la condition suivante est pas vrai; Condition: ! réponse.equals ("oui") &&! réponse.equals ("non") code> dit essentiellement tandis que
réponse code> n'est pas "oui" et
réponse code> n'est pas "non".
réponse code> est "oui" ou
réponse code> est "non" p> p>
Si vous changez tandis que (! Réponse.equals ("Oui") &&! Réponse.equals ("Non")) Code> signifie que la boucle se termine lorsque la condition devient fausse. Selon la législation de Morgan,
! (! Réponse.equals ("Oui") &&! Réponse.equals ("Non")) Code> est
Réponse.equals ("Oui") || Réponse.equals ("Non") Code>. C'est-à-dire que la boucle se termine lorsque la réponse est em> em> "oui" ou "non" - c'est exactement ce que vous voulez. P>
&& code> sur
|| code>, la boucle se terminerait lorsque la réponse est les deux em> "oui" et "non" au même temps, ce qui est impossible. p>
Si vous utilisez le court-circuit ou / et / et (|| et & &&), le système n'évalue pas l'intégralité de l'expression si elle n'a pas besoin. Donc, si l'utilisateur entre "non", la première partie qui vérifie s'il n'est pas "oui" évalue à vrai. Étant donné qu'un ou des conditions n'en a besoin que d'un vrai pour évaluer le vrai, il n'évalue rien d'autre et ne revient que de retourner. P>
Vous avez besoin && parce que vous dites si la réponse n'est pas oui et n'est pas non demandée. Voici plus sur les opérateurs booléens à court-circuit: https://users.trew.edu/burdd /Javafordummies4/shortcirculiteval.pdf . P>