码迷,mamicode.com
首页 > 其他好文 > 详细

switch语句

时间:2020-07-05 00:53:31      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:结束   类型   jdk8   自动   span   void   判断   oid   ati   

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语句

标签:结束   类型   jdk8   自动   span   void   判断   oid   ati   

原文地址:https://www.cnblogs.com/wx1995/p/13237137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!