Java中的一直不能掌握的switch-case语句
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
對于流程控制中的switch-case語句,一直是我的一個弱項.
每當考試或者面試筆試的時候,總是丈二和尚摸不著頭腦,我想這應該是我基礎太差的原因吧!
為了徹底解決這個心病,不得不花點功夫了!
首先從原理上來闡述這個問題:
switch(表達式)
{
case 常量表達式1:語句1;
....
case 常量表達式2:語句2;
default:語句;
}
1.default就是如果沒有符合的case就執(zhí)行它,default并不是必須的.
2.case后的語句可以不用大括號.
3.switch語句的判斷條件可以接受int,byte,char,short,不能接受其他類型.
4.一旦case匹配,就會順序執(zhí)行后面的程序代碼,而不管后面的case是否匹配,直到遇見break,利用這一特性可以讓好幾個case執(zhí)行統(tǒng)一語句.
原理歸原理,下面是幾個容易混淆的例子.
1.標準型(case后面都有break語句)
int i=3;
switch(i)
{
?? case 1:
?????? System.out.println(1);
?????? break;
?? case 2:
?????? System.out.println(2);
?????? break;
?? case 3:
?????? System.out.println(3);
?????? break;
?? default:
?????? System.out.println("default");
?????? break;
}
輸出結果:
???????? 3
2.特殊型1(不是完全有break語句,可以完成一些特殊應用)
int year=2005;
int month=3;
int day;
switch(month)
{
?? case 1:
?? case 3:
?? case 5:
?? case 7:
?? case 8:
?? case 10:
?? case 12:
???????? day=31;
???????? break;
?? case 2:
???????? day=28;
???????? break;
?? case 4:
?? case 6:
?? case 9:
?? case 11:
????????? day=30;
????????? break;
}
這里 day=31;
3.特殊型2(default的位置)
int i=1;
switch(i)
{
?? case 1:
?????? System.out.println(1);
??? default:
?????? System.out.println("default");
?? case 2:
?????? System.out.println(2);
?????? break;
?? case 3:
?????? System.out.println(3);
?????? break;
}
輸出結果:
???????? 1
???????? default
???????? 2
轉(zhuǎn)載于:https://my.oschina.net/shareforum/blog/396
總結
以上是生活随笔為你收集整理的Java中的一直不能掌握的switch-case语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]直博
- 下一篇: 在OpenPower720上安装SLES