swith选择结构的语法:
swith(int或String类型的字面值或变量){
case int或String类型的字面值或变量 :
java语句;
……
break;
case int或String类型的字面值或变量 :
java语句;
……
break;
case int或String类型的字面值或变量 :
java语句;
……
break;
default:
java语句;
……
}
switch执行原理:
当switch的小括号和case分支条件一一匹配如果匹配成功就执行case中的java语句,如果没有break进入下一个分支执行。自上而下执行,没有break就会发生穿透现象,避免穿透就加break.,如果所有分支case都没有匹配成功当有defalut就会执行它的java语句。
JDK6只有int类型 JDK新特性有int或String类型。
swith和case后面只能是int或String类型的值或变量,byte,short,char可以在case和switch中使用因他们可以自动转换为int。
case可以合并
switch (int i=10){
case 1:case 2:case 4:case10:
System.out.println("i的值……");
}
举例子:
public class SwitchTest01
{
public static void main(String[] args){
long l=10L;
switch((int)l){}
char c=‘a‘;
switch(c){}
byte b=10;
switch(b){}
short s=20;
switch(s){}
String ss="abs";
switch(ss){}
}
}
编译不报错通过
完整的例子:
public class SwitchTest01
{
public static void main(String[] args){
String username="zhangsan";
java.util.Scanner s=new java.util.Scanner(System.in);
System.out.print("请输入数字:");
int num=s.nextInt();
switch(num){
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("对不起您输入的数字非法");
}
}
}
public class SwitchTest02
{
public static void main(String[] args){
java.util.Scanner s=new java.util.Scanner(System.in);
System.out.println("请输入星期几:");
String dayOfWeek=s.next();
switch(dayOfWeek){
case "星期一" :
System.out.println(1);
break;
case "星期二" :
System.out.println(2);
break;
case "星期三" :
System.out.println(3);
break;
case "星期四" :
System.out.println(4);
break;
default :
System.out.println("对不起您输入的星期非法。");
}
}
}
public class SwitchTest03
{
public static void main(String[] args){
char a=‘A‘;
switch(a){
case ‘A‘:
System.out.println("高级");
break;
case ‘B‘ :
System.out.println("中级");
break;
default :
System.out.println("出错了");
}
}
}
原文:https://www.cnblogs.com/god1/p/11973240.html