[英]Java prefix and postfix operands
我在想對嗎? 下面如何將其重寫為簡單的附件,以顯示操作的完成方式?
int a = 3;
int b;
b = --a * --a;
Java會:
b =(a = a-1)*(a = a-1)=(2)*(1)= 1;
int a = 3;
int b;
b = a-- * a--;
Java會:
b = a; a = a-1; b = b * a; a = a-1;
b = 3; a = 3-1 = 2; b = 3 * 2 = 6; a = 2-1 = 1;
好的,所以在Java中,a--首先評估a,然后應用運算(在這種情況下為減法),
例如:
a = 3;
b = a--;
“ b”將取初始值“ a”(b = 3),然后“ a”將遞減(a = 2)。
在以下示例中:
int a=3;
int b;
b= a-- * a--;
System.out.println("a = " + a);
System.out.println("b = " + b);
1. b = a的當前值(3)
2. a = a-1(2)
3. b = b * a的當前值(b = 3 * 2)
4. a = a-1(1)
我們的結果將是:
b=6 a=1
對於--a,java首先應用該操作,然后采用該值;
例如:
a = 3;
b =-a;
“ a”將遞減(a = 2),然后“ b”將取值“ a”(b = 2)。
例:
int a=3;
int b;
b= --a * --a;
System.out.println("a = " + a);
System.out.println("b = " + b);
1. a = a-1(2)
2. b = a的值(2)
3. a = a-1(1)
3. b = b * a的值(b = 2 * 1)
我們的結果將是:
b=2 a=1
希望這可以幫助。 祝你好運:)
int a = 3;
int b = --a * --a;
System.out.println("pre " + b + "/" + a);
a = 3;
int r1 = a-1; // 2
a = r1; // 2
int r2 = a-1; // 1
a = r2; // 1
b = r1 * r2; // 2
System.out.println("pre2 " + b + "/" + a);
a = 3;
b = a-- * a--;
System.out.println("post" + b + "/" + a);
a = 3;
r1 = a; // 3
a = r1 - 1; // 2
r2 = a; // 2
a = r2 - 1; // 1
b = r1 * r2; // 6
System.out.println("post2 " + b + "/" + a);
將r1和r2從堆棧中壓入/彈出進行乘法運算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.