default是不是“以上均不執(zhí)行,則…”的意思?
在“不得不說的幾點小秘密3”中,如果沒有break也沒有default,則case1case2case3都作為輸出結果。但是有了default就說明case123都不執(zhí)行才執(zhí)行default,所以雖然沒有break,但是只執(zhí)行default語句?
在“不得不說的幾點小秘密3”中,如果沒有break也沒有default,則case1case2case3都作為輸出結果。但是有了default就說明case123都不執(zhí)行才執(zhí)行default,所以雖然沒有break,但是只執(zhí)行default語句?
2019-01-05
舉報
2019-01-06
我的理解是break的目的是告訴系統(tǒng)當case滿足時執(zhí)行的代碼到break之前,如果沒有break,系統(tǒng)就只認識switch語句最后一個}符號,其他的case都會忽略掉。
例:
int num=1;
switch (num){
? ? case 1:
? ? ? ? ? ?System.out.println("111");
? ?case? 2://由于系統(tǒng)沒有看到break,會忽略掉這個case
? ? ? ? ? ?System.out.println("222");? //但是系統(tǒng)認識這句話,所以當case值滿足時,這句會執(zhí)行
? case? 3://同樣,由于系統(tǒng)沒有看到break,會忽略掉這個case??
? ? ? ? ? ?System.out.println("333");? //但是系統(tǒng)認識這句話,所以當case值滿足時,這句會執(zhí)行?
? default://同樣,由于系統(tǒng)沒有看到break,會忽略掉這個default
? ? ? ? ? ?System.out.println("444");? //但是系統(tǒng)認識這句話,所以當case值滿足時,這句會執(zhí)行?
}
當num=1時執(zhí)行的結果是:
111
222
333
444
當num=2時執(zhí)行結果是:
222
333
444
當num=4時執(zhí)行結果是:
444
2019-03-27
o(╥﹏╥)o下面那段
如果int num=1,結果是
1
超出范圍
1
如果int num=2,結果是 2
如果int num=3,結果是?
超出范圍
3
2019-03-27
mark
同意樓上的說法,break會跳出switch
遇上匹配的case就開始向下執(zhí)行,沒有匹配的case就從default開始向下執(zhí)行
直到遇到break或者執(zhí)行到了末尾
所以,如果不寫break,并且把default放在中間位置,沒有匹配的case時,會把default和default后面的case都執(zhí)行
比如正常break寫法
switch(num){
case 1:
System.out.println(num);
break;
default:
System.out.println("超出范圍");
break;
case 2:
System.out.println(num);
break;
}
如果int num=1,結果是 1
如果int num=2,結果是 2
如果int num=3,結果是 超出范圍
然后不帶break的話
switch(num){
case 1:
System.out.println(num);
default:
System.out.println("超出范圍");
case 2:
System.out.println(num);
}
如果int num=1,結果是
?1
超出范圍
2
如果int num=2,結果是 2
如果int num=3,結果是?
超出范圍
2
2019-01-06
break 的作用是跳出switch的“{}”,沒有break就不會跳出,將成立的“case語句后面的輸出語句”全部執(zhí)行一遍。還有一點需要注意的就是程序是從上向下依次執(zhí)行的。