- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java基礎之switch分支結構詳解
1.畫(huà)出 swtich 出流程
2.案例說(shuō)明流程圖
請編寫(xiě)一個(gè)程序,該程序可以接收一個(gè)字符,比如:a,b,c,d,e,f,g
a 表示星期一,b 表示星期二 …
根據用戶(hù)的輸入顯示相應的信息.要求使用 switch 語(yǔ)句完成
代碼:
/* 案例:Switch01.java 請編寫(xiě)一個(gè)程序,該程序可以接收一個(gè)字符,比如:a,b,c,d,e,f,g a表示星期一,b表示星期二 … 根據用戶(hù)的輸入顯示相應的信息.要求使用 switch 語(yǔ)句完成 思路分析 1. 接收一個(gè)字符 , 創(chuàng )建Scanner對象 2. 使用switch 來(lái)完成匹配,并輸出對應信息 代碼 */ Scanner myScanner = new Scanner(System.in); System.out.println("請輸入一個(gè)字符(a-g)"); char c1 = myScanner.next().charAt(0);// //在java中,只要是有值返回,就是一個(gè)表達式 switch(c1) { case 'a' : System.out.println("今天星期一,猴子穿新衣"); break; case 'b' : System.out.println("今天星期二,猴子當小二"); break; case 'c' : System.out.println("今天星期三,猴子爬雪山.."); break; //..... default: System.out.println("你輸入的字符不正確,沒(méi)有匹配的"); } System.out.println("退出了switch ,繼續執行程序");
//細節1 //表達式數據類(lèi)型,應和case 后的常量類(lèi)型一致, //或者是可以自動(dòng)轉成可以相互比較的類(lèi)型,比如輸入的是字符,而常量是 int //細節2 //switch(表達式)中表達式的返回值必須是: //(byte,short,int,char,enum[枚舉],String) //細節3 //case子句中的值必須是常量(1,'a')或者是常量表達式,而不能是變量 // //細節4 //default子句是可選的,當沒(méi)有匹配的case時(shí),執行default //如果沒(méi)有default 子句,有沒(méi)有匹配任何常量,則沒(méi)有輸出 // //細節5 //break語(yǔ)句用來(lái)在執行完一個(gè)case分支后使程序跳出switch語(yǔ)句塊; //如果沒(méi)有寫(xiě)break,程序會(huì )順序執行到switch結尾,除非執行到break char c = 'b'; char c2 = 'c'; switch(c) { case 'a' : System.out.println("ok1"); break; case 'b' : System.out.println("ok2"); break; default : System.out.println("ok3"); } System.out.println("退出了switch,繼續執行..");
把上面的case b中的 break 都去掉,會(huì )都執行下面輸出語(yǔ)句,不會(huì )跳出來(lái)。
SwitchExercise.java
1.使用 switch 把小寫(xiě)類(lèi)型的 char 型轉為大寫(xiě)(鍵盤(pán)輸入)。只轉換 a, b, c, d, e. 其它的輸出 “other”。
//使用 switch 把小寫(xiě)類(lèi)型的 //char型轉為大寫(xiě)(鍵盤(pán)輸入)。只轉換 a->A, b->B, c, d, e. //其它的輸出 "other"。 Scanner sc = new Scanner(System.in); System.out.println("請輸入a-e"); char c1 = sc.next().charAt(0); switch(c1) { case 'a' : System.out.println("A"); break; case 'b' : System.out.println("B"); break; case 'c' : System.out.println("C"); break; case 'd' : System.out.println("D"); break; case 'e' : System.out.println("E"); break; default : System.out.println("你的輸入有誤~"); }
2.對學(xué)生成績(jì)大于 60 分的,輸出"合格"。低于 60 分的,輸出"不合格"。(注:輸入的成績(jì)不能大于 100), 提示: 成績(jì)/60
//對學(xué)生成績(jì)大于60分的,輸出"合格"。低于60分的, //輸出"不合格"。(注:輸入的成績(jì)不能大于100), 提示 成績(jì)/60 //思路分析 //1. 這道題,可以使用 分支來(lái)完成, 但是要求使用switch //2. 這里我們需要進(jìn)行一個(gè)轉換, 編程思路 : // 如果成績(jì)在 [60,100] , (int)(成績(jì)/60) = 1 // 如果成績(jì)在 [0,60) , (int)(成績(jì)/60) = 0 //代碼實(shí)現 Scanner sc = new Scanner(System.in); System.out.println("請輸入成績(jì)在0-100之間:"); double score = sc.nextDouble(); if (score >= 0 && score<=100) { switch ((int) (score / 60)) { case 0: System.out.println("不合格"); break; case 1: System.out.println("合格"); } }else{ System.out.println("請輸入成績(jì)在0-100之間"); }
3.根據用于指定月份,打印該月份所屬的季節。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [課堂練習, 提示: 使用穿透 ]
//根據用于指定月份, //打印該月份所屬的季節。 //3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 //[課堂練習, 提示 使用穿透 ] // //思路分析 //1. 創(chuàng )建Scanner對象, 接收用戶(hù)輸入 //2. 使用 int month 接收 //3. 使用switch 來(lái)匹配 ,使用穿透來(lái)完成,比較簡(jiǎn)潔 Scanner myScanner = new Scanner(System.in); System.out.println("輸入月份"); int month = myScanner.nextInt(); switch(month) { case 3: case 4: case 5: System.out.println("這是春季"); break; case 6: case 7: case 8: System.out.println("這是夏季"); break; case 9: case 10: case 11: System.out.println("這是秋季"); break; case 1: case 2: case 12: System.out.println("這是冬季"); break; default : System.out.println("你輸入的月份不對(1-12)"); }
如果判斷的具體數值不多,而且符合 byte、 short 、int、 char, enum[枚舉], String
這 6 種類(lèi)型。雖然兩個(gè)語(yǔ)句都可以使用,建議使用 swtich
語(yǔ)句。其他情況:對區間判斷,對結果為 boolean
類(lèi)型判斷,使用 if
,if
的使用范圍更廣。
到此這篇關(guān)于Java基礎之switch分支結構詳解的文章就介紹到這了,更多相關(guān)Java switch分支結構內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站