前言
switch(变量/表达式){
case value :
//执行的代码
break; //可选
case value :
//执行的代码
break; //可选
default : //可选
//执行的代码
}
一、使用思路
1.例子
示例:控制台输入等级,输出其含义
import java.util.Scanner;
public class day02_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建Scanner对象 levelInput
Scanner levelInput = new Scanner(System.in);
//输入提示
System.out.println("请输入你的等级");
//调用levelInput方法,接收输入的值并赋值给变量
String level = levelInput.next();
//判断
switch (level) {
case "A":
System.out.println("高等级");
break;
case "B":
System.out.println("低等级");
break;
default:
System.out.println("别乱输入");
break;
}
}
}
2.注意事项
1.switch()中 支持的类型
case value :
//执行的代码
break; //可选
这边的value的支持哪些类型? String(本案例提到的,JDK1.7后有)、enum(JDK1.5后有)、byte、int、short、char;
2.break缺失的情况,如下会输出什么结果呢?
switch (level) {
case "A":
System.out.println("高等级");
case "B":
System.out.println("低等级");
break;
default:
System.out.println("别乱输入");
break;
}
因为输入的是A,程序会跳转到case "A"的情况,所以输出高等级;但是没有break,程序还没有结束,所以继续执行下面的System.out.println(“低等级”);然后才break,所以结果是:
3.defaut位置问题
1.有break的情况(控制台输入C的情况)
1.default是在末端(正常位置)
switch (level) {
case "A":
System.out.println("高等级");
break;
case "B":
System.out.println("低等级");
break;
default:
System.out.println("别乱输入");
break;
}
2.default是在最前面
switch (level) {
default:
System.out.println("别乱输入");
break;
case "A":
System.out.println("高等级");
break;
case "B":
System.out.println("低等级");
break;
}
2.没有break的情况(控制台输入C的情况)
switch (level) {
case "A":
System.out.println("高等级");
case "B":
System.out.println("低等级");
default:
System.out.println("别乱输入");
}
switch (level) {
default:
System.out.println("别乱输入");
case "A":
System.out.println("高等级");
case "B":
System.out.println("低等级");
}
总结
- defaut位置是可以多变的,但是推荐是写在最后一种情况。
- 在switch中全部没有break的情况下,default的位置摆放,会对结果有影响;有break则没有影响。
- 程序是顺序执行,如果输入的情况的执行代码里面没有break,则会执行下一个情况的执行代码,直到break为止。