switch选择结构
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("出错了");
}
}
public class SwitchTest04
{
public static void main(String[] args){
System.out.println("欢迎使用简单计算器!");
java.util.Scanner s=new java.util.Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1=s.nextInt();
System.out.println("请输入一个运算符:");
String ysf=s.next();
System.out.println("请输入第二个数字:");
int num2=s.nextInt();
switch(ysf){
case "+" :
System.out.println("运算结果是:"+num1+ysf+num2+"="+(num1+num2));
break;
case "-" :
System.out.println("运算结果是:"+num1+ysf+num2+"="+(num1-num2));
break;
case "*" :
System.out.println("运算结果是:"+num1+ysf+num2+"="+(num1*num2));
break;
default :
System.out.println("暂时没有这个功能");
}
}
}
}
public class SwitchTest05
{
public static void main(String[] args){
double score=72.5;
int grade=(int)(score/10);
switch(grade){
case 9 : case 10 :
System.out.println("A等级");
break;
case 8 :
System.out.println("B等级");
break;
case 7 :
System.out.println("C等级");
break;
case 6 :
System.out.println("D等级");
break;
default :
System.out.println("您输入的分数不合法");
}
}
}

浙公网安备 33010602011771号