Wat is een vraagteken “?” en dubbele punt “:” Operator gebruikt voor?

Twee vragen over het gebruik van een vraagteken “?” en dubbele punt “:” operator tussen haakjes van een afdrukfunctie: wat doen ze? Weet iemand ook de standaardterm hiervoor of waar ik meer informatie kan vinden over het gebruik ervan? Ik heb gelezen dat ze vergelijkbaar zijn met een ‘if’ ‘else’-statement.

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

Antwoord 1, autoriteit 100%

Dit is de ternaire voorwaardelijke operator, die overal kan worden gebruikt, niet alleen de verklaring afdrukken. Het wordt soms gewoon “de ternaire operator” genoemd, maar het is niet de enige ternaire operator, alleen de meest voorkomende.

Hier is een goed voorbeeld van Wikipedia om te laten zien hoe het werkt:

Er is een traditionele if-else-constructie in C, Java en JavaScript geschreven:

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

Dit kan worden herschreven als de volgende verklaring:

result = a > b ? x : y;

In principe heeft het de vorm:

boolean statement ? true result : false result;

Dus als de booleaanse verklaring waar is, krijg je het eerste deel, en als het onwaar is, krijg je het tweede.

Probeer deze als dat nog steeds niet klopt:

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

Antwoord 2, autoriteit 3%

Dat is een if/else-statement dat gelijkwaardig is aan

if(row % 2 == 1){
  System.out.print("<");
}else{
  System.out.print("\r>");
}

Antwoord 3

a=1;
b=2;
x=3;
y=4;
answer = a > b ? x : y;

answer=4aangezien de voorwaarde onwaar is, heeft deze de waarde y.

Een vraagteken (?)
. De waarde die moet worden gebruikt als de voorwaarde waar is

Een dubbele punt (:)
. De waarde die moet worden gebruikt als de voorwaarde onwaar is


Antwoord 4

Ook al zou ik het antwoord op een andere gerelateerde vraag die ik had, posten,

a = x ? : y;

Is gelijk aan:

a = x ? x : y;

Als x onwaar of null is, wordt de waarde van y genomen.


Antwoord 5

Misschien kan het een perfect voorbeeld zijn voor Android,
Bijvoorbeeld:

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);
}

Antwoord 6

Ze worden de ternaire operatorgenoemd omdat ze de enige zijn in Java.

Het verschil met de if…else-constructie is dat ze iets teruggeven, en dit iets kan van alles zijn:

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

Antwoord 7

het is een ternaire operator en in eenvoudig Engels staat "if row%2 is equal to 1 then return < else return /r"

Other episodes