webentwicklung-frage-antwort-db.com.de

Was bedeutet diese Zeile in Java: boolean retry = id == 1;

Ich lerne seit einiger Zeit Java und lerne noch immer neue Syntax-Tricks. Im Android-Quellcode bin ich darauf gestoßen:

boolean retry = id == 1;

Was heißt das?

65
Phat7

retry ist true, wenn id den Wert 1 hat, andernfalls retry ist false.

151
Obl Tobl

id == 1 ist ein boolescher Ausdruck, der true ist, wenn id gleich 1 ist, andernfalls false. 

boolean retry = id == 1; deklariert eine boolesche Variable mit dem Namen retry und weist dieser Variablen den Wert des booleschen Ausdrucks id == 1 zu.

Es deklariert also eine boolesche Variable, die wahr ist, wenn id == 1, und sonst falsch.

Um es etwas klarer zu machen, schreiben Sie es vielleicht so:

boolean retry = (id == 1);
220
JB Nizet

Es ist das gleiche wie

boolean retry;
if (id == 1)
   retry = true;
else
   retry = false;
67
Peter Lawrey

==, das Gleichheits-Prädikat, hat eine höhere Priorität als =, der Zuweisungsoperator.

Daher wird zuerst id == 1 ausgewertet und dann dessen Wert (entweder wahr oder falsch) retry zugewiesen.

44
Anirudha

Die boolesche Wiederholung erhält den Wert "true", wenn id == 1.

Es ist das gleiche wie:

boolean retry;
if (id == 1) {
    retry = true;
} else {
    retry = false;
}
14
duffy356

zuerst wird id mit 1 bewertet, daher ist id vermutlich integer.

Danach wird dem Wert retry diese Bewertung zugewiesen. Wenn id gleich 1 ist, wird retrytrue und für jeden anderen Wert von id wird retryfalse.

6
bas

Ich finde, dass die Verwendung von Parens dazu beiträgt, die Verwirrung hinter komplexen Aussagen wie dieser zu beseitigen. 

boolean retry = (id == 1); macht mir viel mehr Sinn. Hier ist klar, dass (id == 1) ein Ausdruck ist, der ausgewertet wird, und das Ergebnis wird boolean retry zugewiesen.

3
Zeph

Es handelt sich dabei um eine ternäre Operation, (x) ? true : false in C, C++, C # usw.

Die ähnliche Syntax:

boolean retry = (id == 1)? true: false; 

Oder es kann anders geschrieben werden:

boolean retry;
if (id == 1) {
    retry = true;
} else {
    retry = false;
}
3
Babul Mirdha

Diese Zeile erstellt eine boolesche Variable und setzt sie auf true, wenn id gleich 1 ist, und false, wenn dies nicht der Fall ist.

3
ShuklaSannidhya

Es ist möglicherweise einfacher zu sehen, was passiert, wenn Sie es so ansehen:

boolean retry = (id == 1);

Im Grunde prüft es, ob id gleich 1 ist, und weist das Ergebnis dann der Variablen erneut zu.

2
PriestVallon

Es ist im Grunde dasselbe wie retry = (id == 1). Es wertet den booleschen Ausdruck aus und weist ihn retry zu.

2
appsecguy

retry weist einen Ausdruck zu, der entweder wahr oder falsch ist, da retry eine boolean..__ ist. Ferner wird == zuerst gelöst und dann retry zugewiesen.

2
Usman Riaz

Es ist eine Möglichkeit, eine boolesche Variable zu definieren.

Wenn id1 ist, ist der Wert von retrytrue.

2

Die boolesche Variable retry erhält den Wert 0 oder 1, je nachdem, ob der Ausdruck id==1true oder false zurückgibt.

Wenn der Wert von id1 ist, entspricht id==1true, also retry=1.

Wenn id den Wert 0 hat, entspricht id==1false, also retry=0.

Bitte beachten Sie, dass == ein Vergleichsoperator ist.

1
Nikita Sindwani

Der Code kann einfach so schreiben, dann wird er leicht verstanden, denkst duso? Vielen Dank, dass Sie die Chance gegeben haben, die Frage zu beantworten!

boolean retry = (id == 1);
0
Mr.Nice