2016-11-06 4 views
-3

Dies ist meine erste Frage hier, und ich bin froh, der Gemeinschaft beizutreten. Ich habe einen Test morgen, und in einem der Beispiele gibt es diese LinieWas ist die Bedeutung von i = j--

i=0; j=2; z=2 
i=j--; 

Was die genaue Operation, die getan ist? Weil ich weiß, dass j-- immer j-1 bedeutet. Danke! Ich bin in Dr.Java.

Antwort

3

Es bedeutet, setze i gleich j und subtrahiere dann eins von j.

6

i = j--; ist eine Zuweisungsanweisung. Die rechte Seite wird ausgewertet, und der resultierende Wert wird dem Ding auf der linken Seite zugewiesen. In Ihrem Fall bedeutet, dass:

  1. Der Wert von j gelesen (2, in diesem Code)
  2. j dekrementiert (um 1, in diesem Code)
  3. Der Wert in Schritt 1 gelesen (2) zu i

die Reihenfolge der Schritte 1 und 2 zugeordnet ist, ist, weil die --nach dieist; es ist der Postfix Dekrement-Operator. Wenn es vor dem (Präfix Dekrementoperator) wäre, wären die Schritte 1 und 2 umgekehrt.

+0

Okay, danke. Und eine Zusatzfrage: mit i = 3; j = 2; z = 2, wir haben z = i ++% j; Was soll ich auf dieser Linie tun? –

+0

@ Román: Wenn Sie es in seine Teile zerlegen (wie oben), was passiert dann? –

+0

Ich bin nicht sicher, aber denke, es ist das gleiche wie Sie zuvor gesagt: Zuerst weisen wir z den Wert von i% j (in diesem Fall 3% 2, also z = 1) und dann tun wir in einer nächsten Zeile i ++ also ich + 1 (in diesem Fall 3 + 1). Habe ich recht? Ich bin wirklich dankbar für deine Hilfe, meine ersten Monate des Programmierens und liebe es! –

1

Es ist eine andere Abkürzung für diesen Code.

i=0; j=2; z=2 
i = j; 
j = j - 1; 
0

Dies bedeutet, dass ich als Wert 2 haben, weil Sie einen Post-Dekrement-Operator verwendet haben. J wird den Wert 1 haben, da es dekrementiert wird. Wenn Sie hatte geschrieben:

i = --j 

dann werde ich den Wert von 1 haben, da der Wert vor der Zuweisung verringert.

Gerald

Verwandte Themen