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语句的主要内容,如果未能解决你的问题,请参考以下文章