0
出於某種原因,switch語句無法顯示正確答案
int x = 5;
switch (x) {
case 3 : x += 1;
System.out.println(x);
case 4 : x += 2;
System.out.println(x);
case 5 : x += 3;
System.out.println(x);
case 6 : x++;
System.out.println(x);
case 7 : x += 2;
System.out.println(x);
case 8 : x--;
System.out.println(x);
case 9 : x++;
System.out.println(x);
}
(忽略了SOP的),此開關語句的結果一直給我11,在紙上計算時,我不斷收到10.我認爲它有與增量有關,但無法弄清楚它顯示的原因11.我錯過了什麼?
所以switch語句如果是第一種情況後,沒有中斷自動執行下一個案件在它的身上?我認爲在情況5中x = 8之後,情況會變爲8,然後是7,然後是9 – X1XX 2014-12-03 03:40:37
@PatrickBui:對你的第一句話是,對你的第二句是。它找到第一個匹配,並且在(按順序)之後執行每行,直到它遇到break語句。 – Gerrat 2014-12-03 03:43:26
@PatrickBui沒有開關不能像那樣工作。只是認爲它的工作原理是:首先它打到'switch()'語句,並根據當時的值,跳轉到相應的標籤,並執行從該標籤開始的所有語句 – 2014-12-03 03:43:51