[英]Java switch statement with += / -= operators
真的很簡單的問題,但無法弄清楚這一點。 為什么y在下面的(Java)代碼中計算為2?
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;
case 6: y -= 2;
default: y += 1;
}
它從案例4到案例6到默認值,因此它遞增(新值:3),遞減2(新值:1)然后遞增(新值:2)。
編譯器應該已經警告過你,至少如果你使用-Xlint
。 永遠不要忽略編譯器警告,並始終使用-Xlint
編譯:)
你忘了添加break
:
int x = 2;
int y = 2;
switch (x * 2) {
case 4:
y += 1;
break;
case 6:
y -= 2;
break;
default: y += 1;
}
你沒有添加突破案例。 所以它執行所有語句。 Y = Y + 1-2 + 1; 2
切換聲明應該是 -
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;break;
case 6: y -= 2;break;
default: y += 1;
}
那么y就是3
在switch語句中,除非您添加break;
否則將執行第一個匹配大小寫以下的所有情況break;
聲明。
如果你希望y為1
你需要做:
int x = 2;
int y = 2;
switch (x * 2){
case 4: y += 1;
break;
case 6: y -= 2;
break;
default: y += 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.