- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java中Switch條件語(yǔ)句如何使用
Java中Switch條件語(yǔ)句如何使用,相信很多沒(méi)有經(jīng)驗的人對此束手無(wú)策,為此本文總結了問(wèn)題出現的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
一、switch條件語(yǔ)句
1.switch是一個(gè)很常用的選擇語(yǔ)句,和if語(yǔ)句不一樣,它是對某個(gè)表達式的值做出判斷,然后決定程序執行哪一段代碼。例如:一個(gè)學(xué)生的英語(yǔ)成績(jì)進(jìn)行等級劃分,90~100分顯示成績(jì)等級為A,80-89分顯示成績(jì)?yōu)锽,70~79分顯示成績(jì)?yōu)镃,60~69分顯示成績(jì)?yōu)镈,0~60分顯示成績(jì)?yōu)镋。
2.switch語(yǔ)法語(yǔ)句:
switch( 表達式 ){
case 條件1:
c1:?jiǎn)蝹€(gè)或多個(gè)語(yǔ)句
break;
case 條件2:
c2:?jiǎn)蝹€(gè)或多個(gè)語(yǔ)句
break;
case 條件3:
c3:?jiǎn)蝹€(gè)或多個(gè)語(yǔ)句
break;
……
case 條件n:
cn:?jiǎn)蝹€(gè)或多個(gè)語(yǔ)句
break;
default:
c(n+1):?jiǎn)蝹€(gè)或多個(gè)語(yǔ)句
}
switch語(yǔ)句的表達式的值與每個(gè)case中的條件進(jìn)行匹配,如果找到了匹配的值,會(huì )執行對應case后語(yǔ)句,如果沒(méi)有找到任何的匹配值,就會(huì )執行default后的語(yǔ)句,switch語(yǔ)句的break的作用是跳出switch語(yǔ)句。
3.用switch寫(xiě)出一個(gè)學(xué)生的英語(yǔ)成績(jì)進(jìn)行等級劃分,90~100分顯示成績(jì)等級為A,80-89分顯示成績(jì)?yōu)锽,70~79分顯示成績(jì)?yōu)镃,60~69分顯示成績(jì)?yōu)镈,0~60分顯示成績(jì)?yōu)镋。
int score = 88;//學(xué)生成績(jì)
int quotient=score/10;//用來(lái)判斷
char level;//定義一個(gè)char變量類(lèi)型level顯示成績(jì)的等級
switch(quotient){
case 10:
case 9:
level='A';
break;
case 8:
level='B';
break;
case 7:
level='C';
break;
case 6:
level='D';
break;
default:
level='E';
}
System.out.print("成績(jì)等級分為"+level);
在這個(gè)例子中,使用除法取得運算后的商數,如果大于90,除以10的商數一定是9或10(成績(jì)?yōu)?00分),在case等于10,沒(méi)有任何的描述,也沒(méi)有break,所以它會(huì )繼續往下執行,直到break離開(kāi)switch為止,所以學(xué)生的成績(jì)?yōu)?00分,成績(jì)等級也會(huì )顯示為A;如果比較條件不是10到6這些值的話(huà),就會(huì )執行default的語(yǔ)句,這表示商數小于6,學(xué)生的成績(jì)顯示為E。
4.switch語(yǔ)句中的表達式只能是byte、short、char、int類(lèi)型的值,如果傳入其他的值程序會(huì )出現報錯。從JDK5.0中引用enum枚舉也可以作為switch語(yǔ)句表達式的值,JDK7.0中引用String類(lèi)型。
二、Scanner類(lèi)使用
1.java5添加了java.util.Scanner類(lèi),主要功能是簡(jiǎn)化文本掃描、獲取控制臺輸入。我們可以通過(guò) Scanner 類(lèi)來(lái)獲取用戶(hù)的輸入。
下面是創(chuàng )建 Scanner 對象的基本語(yǔ)法:
Scanner scanner = new Scanner(System.in);
通過(guò)new Scanner(System.in)創(chuàng )建一個(gè)Scanner,控制臺會(huì )一直等待用戶(hù)輸入,直到按回車(chē)鍵結束,把所有輸入的內容傳給Scanner,作為掃描對象。如果要獲取控制臺輸入的內容,調用Scanner的nextLine()或next()方法就可以。
Scanner允許多行輸入;
next()每次取間隔符前面的數據。例如:輸入The man取值應該是The,因為T(mén)he后面有空格;
nextLine()每次取換行符前面的數據。例如:輸入The man回車(chē),取值是The man ;
nextInt()是取next()將字符串解析成一個(gè)int數字。
hasNextInt()是判斷下次調用next()是否可以得到一個(gè)int的字符串。如果已經(jīng)到達輸入的結尾或下一個(gè)next()的返回值不能解析成一個(gè)數字,不符合數字的格式,就返回一個(gè)false。
2.使用Scanner類(lèi)必須要使用import java.util.Scanner;語(yǔ)句進(jìn)行導包。
3.例如:輸入你的名字案例
String name;
Scanner scan = new Scanner(System.in);
System.out.println("請輸入你的名字:");
name = scan.nextLine();
System.out.println("你的名字是:" + name);
運行的結果為:
請輸入你的名字:
張三
你的名字是:張三
三、數據的輸出
數據的輸出:System.out標準輸出。兩種方式:
System.out.println();----換行輸出
System.out.print();---不換行輸出
例如:
System.out.print("學(xué)號:");
System.out.println("01");
System.out.print("姓名:");
System.out.println("張三");
System.out.print("班級:");
System.out.println("1班");
輸出的結果如下所示:
學(xué)號:01
姓名:張三
班級:1班
四、continue語(yǔ)句使用
continue語(yǔ)句只可能出現在循環(huán)語(yǔ)句(while、do-while和for循環(huán))的循環(huán)體中,作用是跳過(guò)當前循環(huán)中continue語(yǔ)句以后的剩余語(yǔ)句,直接執行下一次循環(huán)。
例如:
int i=0;
while(i<10){
i++;
if(i==5){
continue;
}
System.out.print(i);
}
輸出的結果是:1234678910
免責聲明:本站發(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)站