2016-06-26 7 views
-7

Ich habe einen Kurs auf Edx gemacht. Für diese Frage lautet die Bedingung x ++ == 4. Ich habe versucht und herausgefunden, dass nur, wenn ich einen x-Wert von 4 eingeben, die Bedingung als wahr ausgewertet wird. Aber warum?Wie ist x ++ == 4 eine Bedingung?

1) Warum wird bei der Eingabe von x = 3 oder x = 2 die Bedingung als falsch ausgewertet?

2) Warum ist x ++ == 4 sogar eine Bedingung? es ist wie x = x + 4. Wie kann es jemals wahr oder falsch sein? Es ist eine Gleichung, nicht wie x> 3 usw.

enter image description here

+3

'x ++ == 4' ist nicht wie' x = x + 4'. –

+0

Nachschlagen '++' unärer Operator und '=='. – pvg

+0

Warum sollte es * nicht * eine Bedingung sein? * "Es ist eine Gleichung" * - ** nein **, es gibt ein '=='. – luk2302

Antwort

0
if (x++==4) { ... } 

könnte einfach durch die folgenden Zeilen

boolean b = (x == 4); 
x = x + 1; 
if (b) { ... } 

Sie bewerten ersetzen, wenn x auf 4 gleich und dann erhöhen es unter Verwendung der Postfix increment Operator ++


Warum ist bei der Eingabe von x = 3 oder x = 2 die Bedingung falsch?

Da

3 == 4; // false 
2 == 4; // false 
+0

Sie sollten Ihren Code leicht erweitern; Es würde zur Zeit nicht kompiliert werden, weil 'x == 4' keine Aussage ist. Ich werde einen Edit vorschlagen, um Ihre Aussage genauer zu machen (fühlen Sie sich frei, wenn Sie nicht zustimmen). (Nicht der Downvoter) –

+0

@AndyTurner Danke für die Bearbeitung, es ist in der Tat klarer. Ich habe nichts dagegen die downvotes .. Solange die Antwort richtig ist –

+0

Danke für die schnelle Antwort! Ich frage mich, ob es boolesch sein sollte b = (x == 4); if (b) {...} x = x + 1; da es ein Postfix-Inkrement ist. – vade

0

Es ist, weil x==4 eine Bedingung IS? therfore x ++ ist nur ein Zuwachs auf dem Wert, wenn die Variable

Dont die ++ lassen Sie Ihre Seele zu betrügen ...

das gleiche auch auf hässlichste Weise wie

if (x---5==0) { passieren kann, die gerade passiert be

if ((x--)-5==0) { 
+0

Danke für die Antwort. Also ist Ihr Beispiel äquivalent wenn (x == 5) {} dann später x = x - 1? – vade

+0

ja ... um des Beispiels willen, das ist der Punkt, den ich yo bekommen will .... –

+0

bald oder später werden Sie überprüfen, das ist keine gute Idee, weil die Überläufe den Lochzustand brechen können ... –

Verwandte Themen