生活随笔
收集整理的這篇文章主要介紹了
JAVA入门级教学之(switch语句)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/*
?? ? 關(guān)于switch語句(我稱為匹配語句):
?? ??? ?1.switch語句也屬于選擇結(jié)構(gòu),也是分支語句
?? ??? ?2.switch語句的語法結(jié)構(gòu):
?? ??? ??? ?一個比較完整的switch語句應(yīng)該這樣編寫:
//case有匹配的意思,相當(dāng)于拿數(shù)據(jù)匹配,拿數(shù)據(jù)匹配
//case穿透現(xiàn)象,意思是當(dāng)break不存在的時候,即使第一個不匹配,也會一直按順序往下面匹配,直到遇見break;跳出結(jié)構(gòu)體
?? ??? ?switch(int和String類型的字面值或變量){
?? ??? ??? ?case int和String類型的字面值或變量:
?? ??? ??? ??? ??? ??? ??? ?Java語句;
?? ??? ??? ??? ??? ??? ??? ?Java語句;
?? ??? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ?case int和String類型的字面值或變量:
?? ??? ??? ??? ??? ??? ??? ?Java語句;
?? ??? ??? ??? ??? ??? ??? ?Java語句;
?? ??? ??? ??? ??? ??? ??? ?break;?? ?
?? ??? ??? ?default:
?? ??? ??? ??? ??? ??? ??? ?java語句;
?? ??? ?}
3.switch語句的執(zhí)行原理:
?? ?switch后面小括號中的"數(shù)據(jù)"和case后面的"數(shù)據(jù)"進(jìn)行一一匹配,匹配成功的分支執(zhí)行。
4.匹配成功的分支執(zhí)行,分支中最后面有"break;"語句的話,整個switch語句都會終止。
5.匹配成功的分支執(zhí)行,分支當(dāng)中沒有"break;"語句的話,直接進(jìn)入下一個分支執(zhí)行(不進(jìn)行匹配的時候),
? 這種現(xiàn)象被稱為case穿透現(xiàn)象【意思是提供break;語句可以避免穿透】
6.所有分支都沒有匹配成功,當(dāng)有default的語句,會執(zhí)行default分支當(dāng)中的程序。
7.switch后面括號內(nèi)和case后面只能是int或者是String類型的數(shù)據(jù),不能是探測其它類型的數(shù)據(jù)。
?? ?
?? ?*當(dāng)然byte,short,char也可以直接寫在switch和case后面,因它們可以進(jìn)行自動類型轉(zhuǎn)換。
?? ??? ?
?? ?*JDK6低版本的,switch和case后面只能探測int類型。
8.case可以合并
?? ?
?? ?int i=10;
? ? switch(i){
?? ??? ?case 1:case2:case3:case10:
?? ?}
*/
public class switch01
{public static void main(String[] args){
/*數(shù)值類型錯誤,大容量向小容量轉(zhuǎn)換需要強(qiáng)制轉(zhuǎn)換
//編譯報(bào)錯long a=10L;int b=a;long x=10L;switch(x){}?? ??? ?
*///解決編譯報(bào)錯
//實(shí)際上是進(jìn)行一次強(qiáng)制轉(zhuǎn)換
long x=100L;
switch((int) x){}//同樣
byte b=10;
switch(b){}short s=10;
switch(s){}//string類型
String uesrname="zansan";
swtich(username){}//關(guān)于case穿透
/*
需求:接受用戶的輸入
1表示星期一,以此類推
*/java.util.Scanner s=new java.util.Scanner(System.in);
System.out.print("請輸入數(shù)字");
int num=s.nextInt();
switch(num){
case 1:System.out.println("星期一");break;//當(dāng)break;不存在的時候,輸入1,會顯示星期一和星期二//雖然輸入1沒有匹配下面的2,但是會執(zhí)行2
case 2:System.out.println("星期二");break;?? ?
case 3:System.out.println("星期三");break;
case 4:System.out.println("星期四");break;?? ?
case 5:System.out.println("星期五");break;
case 6:System.out.println("星期六");break;?? ?
case 7:System.out.println("星期日");break;
default;System.out.println("對不起,您輸入的數(shù)字錯誤");
}//switch確實(shí)可以探測String類型,這是java7的新特性//例如:
java.util.Scanner s=new java.util.Scanner(System.in);System.out.println("請輸入今天星期幾");String dayWeek=s.next();//從此處檢測switch(dayWeek){case"星期一":System.out.println(1);
case"星期二":System.out.println(2);
case"星期三":System.out.println(3);
default:System.out.println("不合法");}//用switch實(shí)現(xiàn)計(jì)算機(jī)中的+-* /%
/*實(shí)現(xiàn)思路:1.選擇所有數(shù)據(jù)從鍵盤輸入2.使用switch語句進(jìn)行判斷3.需要從控制臺輸入三次:*第一個數(shù)字*運(yùn)算符*第二個數(shù)字最終在控制臺上是這樣的一個場景:歡迎使用計(jì)算機(jī)請輸入第一個數(shù)字:10請輸入運(yùn)算符:+-* / %請輸入第二個數(shù)字:20運(yùn)算結(jié)果:10+20=30*/
java.util.Scanner s=new java.util.Scanner(System.in);
System.out.println("請輸入第一個數(shù)字");
int a=s.nextInt();
System.out.println("請輸入一個運(yùn)算符");
String b=s.next();
System.out.println("請輸入第二個數(shù)字");
int c=s.nextInt();int result=0;switch(b){case "+":result=a+c;break;case "-":result=a-c;break;case "*":rusult=a*c;break;case "/":result=a/c;break;case "%":result=a%c;break;default:System.out.println("輸入非法");System.out.println("運(yùn)算結(jié)果:"+a+b+c+"="+result);}}
}
?
總結(jié)
以上是生活随笔為你收集整理的JAVA入门级教学之(switch语句)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。