switch语句

Posted wx1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch语句相关的知识,希望对你有一定的参考价值。

switch 语句和 if 语句一样,都属于选择语句(分支语句)通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。因此,在编写选择语句之前,应该首先明确判断条件是什么,并确定当判断结果为“真”或“假”时应分别执行什么样的操作/算法。

switch 语句完整结构

switch(int/String类型数据){
case int/String类型数据:
    java语句;...
    break;
case int/String类型数据:
    java语句;...
    break;
case int/String类型数据:
    java语句;...
    break; 
default:
    java语句;
 }

注意:1.要注意JDK的版本,JDK8之前不支持String类型,只支持int,在jdk8之后,switch语句开始支持字符串String类型。

2.break语句不是必须的。default语句也不是必须的。

3.switch语句本质上是只支持int和String,但是byte,short,char也可以使用在switch语句当中,因为byte,short,char可以进行自动类型转换。

4.switch语句中的值与case中值比较的时候会使用"=="进行比较

 

switch语句执行原理

1.拿switch语句中的值与第一个case中值比较的时候,如果相同,则执行该分支中的java语句,然后遇到"break"语句,switch语句就结束了,如果第一个不相等,则继续与后面的case值进行比较。

2.如果分支执行了,但是分支最后没有"break",此时会发生case穿透现象,也就是说下一个分支也不再进行匹配,直接进入下一个分支执行,直到遇到"break"为止。

3.所有的case都没有匹配成功,那么最后default分支会执行。

 

经典案例:

public class SwitchTest02{
    public static void main(String[] args){
        java.util.Scanner s=new java.util.Scanner(System.in);
        System.out.print("请输入考生成绩:");
        double score=s.nextDouble();
        if(score<0 || score>100){
            System.out.println("您输入的学生成绩不合法");
            return;
        }
        //grade的值可能是:0 1 2 3 4 5 6 7 8 9 10
        //0-5不及格
        //6 及格
        //7 中
        //8 良
        //9 10 优
        int grade=(int)(score/10);
        String str="不及格";
        switch(grade){
        case 10:case 9://case可以合并
            str="优";
            break;
        case 8:
            str="良";
            break;
        case 7:
            str="中";
            break;
        case 6:
            str="及格";
            break;
        }
        System.out.println("该学生成绩等级为:"+str);
    }
}

 

 

以上是关于switch语句的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript8_switch语句

switch语句(下)(转载)

switch语句的用法?

switch语句怎么用啊 具体啊!

switch语句

流程控制语句-switch选择语句