1、switch表示关键字,表示switch分支
2、表达式代表一个值
3、break代表退出switch
4、先和case进行匹配,若匹配就执行,不匹配那就接着匹配后面的,若都没有匹配,就去执行default(默认)。
细节:重要
若第一个匹配成功那么,我们可以知道,他会执行语句块1,在看他有没有break,要是有的话,我们就这道他就会调出循环,要是没有的话,他就会继续值行语句块2,此时应该注意到,他没有进行case2语句的比较,是直接执行的哦。后续按照这样的规则继续执行,也要看语句的后面有没有break。假如第一个就匹配成功了,且后面的语句都没有break,那么就会将所有的语句都执行了。
1、表达式的数据类型,应该和case后面的常量类型一致,或者可以使自动转换成可以相互比较的类型,比如输入的是字符,而常量是int;
2、switch(表达式)中的表达式的返回值必须是(byte,short,int,char enum【枚举】,String)不能是double
3.case中的值必须是常量而不能是变量,或者是常量表达式。defalut
4、default是可选的,也可以没有。当没有case可选,那就执行default。
5、break语句是跳出循环的。(结束switch语句的)
我一定要拿到offer!!!都会学会,也都会学好。从没有break的哪里开始穿透。(一步步执行)
import java.util.Scanner;
public class Change{
public static void main(String[] args){
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入月份");//先对输入的信用分进行一个有限的判断。
char week = myscanner.next().charAt(0);
switch(week){
case 'a' : System.out.println("星期1");break;
case 'b' : System.out.println("星期2");break;
case 'c' : System.out.println("星期3");break;
case 'd' : System.out.println("星期4");break;
case 'e' : System.out.println("星期5");break;
case 'f' : System.out.println("星期6");break;
case 'g' : System.out.println("星期天");break;
default : System.out.println("闹着玩呢");break;
}
System.out.println("想要甜甜的恋爱");
}
}
小练习:
import java.util.Scanner;
public class Change{
public static void main(String[] args){
/*
对于成绩大于60的,输出合格,低于60的,输出不合格;
//如果成绩在【60-100】,(int)(score/60)= 1;
强制转换要记住啊。
使用if - else-判断最开始的条件。尽量多想一点哦。
*/
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入您的成绩成绩");//先对输入的信用分进行一个有限的判断。
double score = myscanner.nextDouble();
switch((int)(score/60){
case 1 :
System.out.println("合格");
break;
case 0 :
System.out.println("不合格");
break;
}
System.out.println("结束了,我什么时候才能工作");
}
}
import java.util.Scanner;
public class Change{
public static void main(String[] args){
/*
对于成绩大于60的,输出合格,低于60的,输出不合格;
//如果成绩在【60-100】,(int)(score/60)= 1;
强制转换要记住啊。
使用if - else-判断最开始的条件。尽量多想一点哦。
*/
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入月份");//先对输入的信用分进行一个有限的判断。
int month = myscanner.nextInt();
if (month >= 1 && month <= 12) {
switch(month){
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;
case 8 :
System.out.println("这是夏季");
break;
case 9 :
System.out.println("这是秋季");
break;
case 10 :
System.out.println("这是秋季");
break;
case 11 :
System.out.println("这是秋季");
break;
case 1 :
System.out.println("这是冬季");
break;
case 2 :
System.out.println("这是冬季");
break;
case 12 :
System.out.println("这是冬季");
break;
}
}else{
System.out.println("出错了");
//这里可以用switch语句的default。也可以进行简化的。
}
}
}
简化的不写了。00
switch 和if 的比较,使用哪一种呢,
1、如果判断的具体数值不多,而且符合byte、short int 、char、enum String这6中类型,虽然两个语句都可以使用,建议使用switch。
2、如对区间判断,对结果为Boolean类型判断,使用if比较好。
要有自己的思想,要有自己的思想。要有自己的想象。