在學習c語言的時候,這方面就沒有弄得很清楚。
下面舉例說明:
int a = 2;
int b = 3;
switch (a)
system.out.println("b="+b);
這段**的特點是每一句都沒有break,所以每一句都不會跳出。
首先查詢2,沒有對應的case,直接執行default ,b=4。
由於沒有break,直接進行下一步case 3 ,使得b的值再加一,b=5 。
又沒有break,再直接進行下一步case 4 ,使得b的值再加一,b=6 。
執行完這些以後已經沒有下一條語句,所以跳出switch。
最終得到b的值為6 。
如果將上面的default語句放到case語句的最後面,即
switch (a){
case
3: b++;
case
4: b++;
default:
b++;
這會導致直接b執行最後default語句,只自加一次,便退出switch語句,使得最後的b的值為4 。 switch語句 case穿透
switch語句的case穿透 public static void main string args switch case 穿透 default 在最上面的值 1 public static void main string args 要結束的,但是結束是case 的值需要和 switch的值 ...
switch語句和case語句的特性
switch語句格式 switch 表示式 執行順序 首先計算表示式的值 然後,和case的值依次進行比較,遇到相對應的值就會匹配對應的結果,遇到break,就會退出整個迴圈 如果所有的case都和表示式的值不匹配,就會執行default語句體部分,然後程式結束掉。switch語句中,表示式的資料型...
switch語句case內宣告物件
今天本來想使用switch語句來實現不同情況下執行相對應的 在每個case內都需要宣告不同的類的物件,結果出現switch work state ptr cutter type 錯誤 error c2360 cutter1 的初始化操作由 case 標籤跳過 分析原因 在case 可能沒有被執行到時...