switch語句以及case的穿透現象


switch語句:

/*
switch(表達式){
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;....
default:
語句體n+1;
break;

表達式:將要被匹配的值。取值可以是byte、short、int、char。jdk5后可以是枚舉。jdk7后可以是String。
case:后面跟的值為與表達式匹配的值。
break:表示中斷,跳出switch語句。
default:所有情況都不匹配,就執行該處的內容。類似於if..else中的else。
}
*/
import java.util.Scanner;
public class Demo3_1{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int week =sc.nextInt();
//需求:根據week變量記錄的數值,程序輸出對應的星期。
//比如:輸入3,輸出今天星期三。
switch(week){
case 1:
System.out.println("今天是星期一");
break;
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("您的輸入有誤");
break;
}
}
}

case穿透效果:

/*
case穿透效果:如果case后面不加break,那么case會開始穿透。
表現:當case穿透開始后,后續的case語句就不會有匹配作用,內部的語句都會執行。直到看見break或者switch語句執行完畢后才會結束。
*/
import java.util.Scanner;
public class Demo3_2{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int week =sc.nextInt();
//需求:根據week變量記錄的數值,1-5輸出工作日,6-7輸出休息日。
//比如:輸入3,輸出工作日。
switch(week){
case 1:    //不加break,case開始穿透
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;    //停止,結束switch語句。
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("您的輸入有誤");
break;
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM