switch語句中的case穿透問題

2021-10-06 13:22:10 字數 418 閱讀 8221

測試**:

int x =2;

int y =3;

switch

(x)    system.out.

println

("y = "

+ y)

;

執行順序:匹配物件為x,首先進入switch語句後,不會直接進入default語句,它是在沒有匹配case的情況下最後去執行的,繼續往向下走,沒有匹配上case3,繼續往下走,依舊沒有匹配,繼續向下與5匹配,匹配不上,由於沒有成功匹配case,執行default中的語句,進行y++,但這裡沒有遇到break語句,忽略掉case3和4的判斷,執行兩次y++,直到遇到break或是右大括號才跳出switch語句,所以總共進行了3次y++,輸出結果為y=6

中間這兩次連續的y++就是case穿透導致的

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語句中,表示式的資料型...

SQL語句中 CASE 的用法

在寫sql語句時,或者是在pl sql中,經常需要在乙個sql語句中,根據不同的條件,有多種處理方法,如簡單例子 一種商品時,單價不同,折扣不同,對這種需求的處理,如果分情況處理,將會很麻煩,如果用case語句,就可以在一條sql語句中得到想要的結果。首先看一下,case的語法 case when ...