-1
votes

Java opérateur conditionnel trois résultats possibles

Comment briser le code conditionnel Vous pouvez voir ci-dessous dans un normal si -Statement pour comprendre comment cela fonctionne, car il a trois résultats.

J'ai changé de valeurs juste pour voir où se passe : xxx


10 commentaires

Ne devrait-il pas être de type booléen?


Quelle est la sortie que vous obtenez avec le SYS ci-dessus.


Puis-je vous offrir d'autres parenthèses? Est-il plus facile de comprendre si vous mettez un ( juste après le premier ? et un ) juste avant le dernier : Peut-être?


La sortie est 1 car les deux sont vraies


piscine constante de java String donc si la piscine est pas éteint "a" == "a" et "b" == "b" sera vrai parce que java.lang.string Les références sont identiques et l'expression sera Résolu à true, ainsi qu'imprimé 1 .


Utilisez-vous == pour comparer des chaînes exprès? Vous savez que cela fait donc une très mauvaise idée?


@Dawoodibnkareem Probablement le point entier ici est de forcer les élèves à regarder soigneusement le code. Code intentionnellement étrange, destiné à faire penser aux gens. Ou déléguer la forte pensée à d'autres personnes ...


@Dawoodibnkareem Les mêmes résultats mais il l'a effacé un peu plus pour moi, est B condition non au même niveau que A condition est B à l'intérieur < code> un bloc de condition ? Si c'est alors c'est si déroutant comment Java savait qu'il était censé être comme ça sans le (


@GhostCat j'ai collé le code comme celui-ci parce que j'ai eu une question que j'ai besoin de répondre à la même manière que ce code et qu'il n'y a pas d'erreur de compilation, c'est pourquoi je devais le comprendre


Eh bien, il y a beaucoup de questions ici et des explications joliment écrites ailleurs qui vous expliquent parfaitement quel opérateur ternaire est et comment cela fonctionne.


3 Réponses :


2
votes

L'opérateur conditionnel (ternaire) fonctionne de la manière suivante:

(prédicat)? (Ontruevalue): (OnfalseValue);

Donc, dans votre cas, ce que nous avons est: xxx

qui devient: xxx

Similaire à: xxx

et quelques tests pour la vérification xxx

Notez également que vous voulez utiliser le == Opérateur pour comparer des chaînes. Dans ce cas particulier, cela ne donnera aucune différence simplement l'utiliser avec prudence ...


0 commentaires

2
votes

Votre code peut être divisé comme ceci:

String message;
if ("A" == "A") {
    if ("B" == "B") {
        message = "1";
    } else {
        message = "2";
    }
} else {
    message = "3";
}
System.out.print(message);


2 commentaires

Merci beaucoup, cela a répondu à ma question que j'ai posée cela parce que j'avais le même code exact dans une question que je devais comprendre avant de le répondre.


Corriger. Corrigé. C'est "ternaire".



1
votes

Si je vous comprends correctement et A, B et C sont des booléens, cela pourrait être ce que vous voulez: xxx

pour les cordes que vous devez vous assurer d'utiliser des AIME (B).


0 commentaires