switch(表达式){
case常量1:
语句块1;
break;
case常量2;
语句块2;
break;
default语句块;
break;
二、流程图 三、入门练习package demo03;
import java.util.Scanner;
public class Switch01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//定义一个变量
System.out.println("请输入星期的天数");
char day = scanner.next().charAt(0);
switch (day) {
case 'a':
System.out.println("星期一");
break;
case 'b':
System.out.println("星期二");
break;
case 'c':
System.out.println("星期三");
break;
case 'd':
System.out.println("星期四");
break;
case 'e':
System.out.println("星期五");
break;
case 'f':
System.out.println("星期六");
break;
case 'j':
System.out.println("星期天");
break;
default:
System.out.println("没有找到");
}
}
}
四、注意事项
1、表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int。
package demo03;
public class Switch02 {
public static void main(String[] args) {
char num = 'c';
switch (num){
case 'c':
System.out.println("money");
case "aa" :
System.out.println("hello");
default:
System.out.println("kay");
}
}
}
2、switch(表达式)中表达式的返回值必须是: (byte,short,int,char,enum,String)
package demo03;
public class Switch02 {
public static void main(String[] args) {
long num = 222;
switch (num){
case 5555:
System.out.println("money");
case 66 :
System.out.println("hello");
default:
System.out.println("kay");
}
}
}
3、case子句中的值必须是常量(1,'a' )或者是常量表达式,而不能是变量
package demo03;
public class Switch02 {
public static void main(String[] args) {
char num = 22;
int sum = 13;
switch (sum){
case 5:
System.out.println("money");
case num :
System.out.println("hello");
default:
System.out.println("kay");
}
}
}
4、default子句是可选的, 当没有匹配的case时, 执行default,如果没有default 子句,有没有匹配任何常量,则没有输出。
5、break语句用来在执行完一个case分支后使程序跳出switch语句块; 如果没有写break,程序会顺序执行到switch结尾,除非遇到break;
五、练习一使用switch把小写类型的char型转为大写(键盘输入)。只转换a, b,c, d, e.其它的输出"other'。
package demo03;
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
System.out.println("请输入一个字母");
Scanner scanner = new Scanner(System.in);
char key = scanner.next().charAt(0);
switch (key){
case 'a':
System.out.println('A');
break;
case 'b':
System.out.println('B');
break;
case 'c':
System.out.println('C');
break;
case 'd':
System.out.println('D');
break;
case 'e':
System.out.println('E');
break;
default:
System.out.println("other");
break;
}
}
}
练习二
对学生成绩大于60分的,输出合格”。低于60分的,输出"不合格”。(注:输入的成绩不能大于100)。
package demo03;
public class Test06 {
public static void main(String[] args) {
double result = 80.5;
if (result <= 100 && result >= 0){
switch ((int)( result /60 )){
case 1:
System.out.println("成绩及格");
break;
case 0:
System.out.println("成绩不及格");
break;
}
} else {
System.out.println("成绩输入有误");
}
}
}
练习三
根据用于指定月份,打印该月份所属的季节。3,4,5 春季6,7,8夏季9,10,11秋季12, 1, 2冬季。
package demo03;
public class Test07 {
public static void main(String[] args) {
int month = 3;
switch (month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
default:
System.out.println("月份不对");
}
}
}



