【基础】对switch中case与break功能的理解

  1. 很多的资料上写着,default 这个语句的后面是不用加break语句的,但其实实在switch中不管哪一个分支,后面都要加上break语句结束循环的的,但是default 后面一般就是switch的“}”括号,所以,在default 后面加一个break意义不太大而已
  2. switch语句几乎和break分不开,尽管从语法上没有硬性的规定要有break,但任何一个用到switch语句的实用程序,都离不开break语句。因为本质上,case语句只是一个“入口”,并没有判断的功能,如果没有break,程序就会毫无阻碍地长驱直入,而不具备了分支的作用。
  3. switch一旦通过某一条case或者default语句做入口“进入后”,没有遇到①break或者 ②大括号} 就不会终止,后面的case和default语句没有判断作用,只是“入口”而已,因为之前已经进入了,所以后面语句会一直按顺序执行

例一:

public static void main(String[] args) {
	int x=2,y=3;
	switch (x){
	default:
	y++;
	case 3:
	y++;
	case 4 :
	y++;
	}
 System.out.println(y);
}	

输出:6

例二:
在这里插入图片描述
答案:会执行,而且num=10+1+1-1=11,通过case 'A’语句已经进入后,因为都没有break,后面的case 与default不具备选择功能,所以case 'A’后面的语句都会执行

4.之所以这样设计师为了更灵活,比如如下例子

例题三

Scanner input = new Scanner(System.in);
		System.out.println("请输入月份");
		int month = input.nextInt();
		System.out.println("请输入月份天数");
		int day = input.nextInt();
		int days = 0;
		switch (month) {
		case 12:
			days += 30;
		case 11:
			days += 31;
		case 10:
			days += 30;
		case 9:
			days += 31;
		case 8:
			days += 31;
		case 7:
			days += 30;
		case 6:
			days += 31;
		case 5:
			days += 30;
		case 4:
			days += 31;
		case 3:
			days += 29;
		case 2:
			days += 31;
		case 1:
			days += day;break;
		default:
			System.out.println("输入数字非法");
		}
		System.out.println("那天是2020年的第"+days+"天");
发布了37 篇原创文章 · 获赞 5 · 访问量 761

猜你喜欢

转载自blog.csdn.net/qq_43771096/article/details/104387430