Qu’est-ce qu’un point d’interrogation «?» Et le côlon «:» opérateur utilisé pour?

Deux questions sur l’utilisation d’un point d’interrogation “?” et deux-points “:” opérateur entre parenthèses d’une fonction d’impression: que font-ils? De plus, est-ce que quelqu’un connaît le terme standard pour eux ou où je peux trouver plus d’informations sur leur utilisation? J’ai lu qu’ils sont similaires à une déclaration ‘if’ ‘else’.

int row = 10; int column; while (row >= 1) { column = 1; while(column <= 10) { System.out.print(row % 2 == 1 ? ""); ++column; } --row; System.out.println(); } 

    Ceci est l’ opérateur conditionnel ternaire , qui peut être utilisé n’importe où, pas seulement l’instruction print. On l’appelle parfois “l’opérateur ternaire”, mais ce n’est pas le seul opérateur ternaire , mais le plus commun.

    Voici un bon exemple de Wikipedia qui montre comment cela fonctionne:

    Une construction if-else traditionnelle en C, Java et JavaScript est écrite:

     if (a > b) { result = x; } else { result = y; } 

    Cela peut être réécrit comme la déclaration suivante:

     result = a > b ? x : y; 

    Fondamentalement, il prend la forme:

     boolean statement ? true result : false result; 

    Donc, si l’instruction booléenne est vraie, vous obtenez la première partie, et si elle est fausse, vous obtenez la deuxième.

    Essayez-les si cela n’a toujours pas de sens:

     System.out.println(true ? "true!" : "false."); System.out.println(false ? "true!" : "false."); 

    C’est une instruction if / else équilavent à

     if(row % 2 == 1){ System.out.print("<"); }else{ System.out.print("\r>"); } 
     a=1; b=2; x=3; y=4; answer = a > b ? x : y; 

    answer=4 puisque la condition est fausse elle prend la valeur y.

    Un point d’interrogation (?)
    . La valeur à utiliser si la condition est vraie

    Un deux-points (:)
    . La valeur à utiliser si la condition est fausse

    Peut-être que cela peut être un exemple parfait pour Android, par exemple:

     void setWaitScreen(boolean set) { findViewById(R.id.screen_main).setVisibility( set ? View.GONE : View.VISIBLE); findViewById(R.id.screen_wait).setVisibility( set ? View.VISIBLE : View.GONE); } 

    c’est un opérateur ternaire et en anglais simple il indique "if row%2 is equal to 1 then return < else return /r"

    Aussi juste si je posterais la réponse à une autre question connexe que j’avais,

     a = x ? : y; 

    Est équivalent à:

     a = x ? x : y; 

    Si x est faux ou nul, la valeur de y est prise.

    Ils sont appelés l’opérateur ternaire car ils sont les seuls en Java.

    La différence avec la construction if … else est qu’ils renvoient quelque chose, et ce quelque chose peut être quelque chose:

      int k = a > b ? 7 : 8; Ssortingng s = (foobar.isEmpty ()) ? "empty" : foobar.toSsortingng ();