switch..case判断中break和default作用

下午使用switch判断是忘了在case后面加break,导致出现了bug,数据一直错误。

switch…case的规则:

  1. 无成功匹配,又无default子句,那么swtich语句块什么也不做
  2. 无成功匹配,但有default,那么swtich语句块做default语句块的事;
  3. 有成功匹配,没有break,那么成功匹配后,一直执行后面case语句里面的内容,直到遇到break
#include<stdio.h>
 
int main()
{
    
    
	int n = 5;
	switch (n){
    
    
	case 1:
		printf("1");
	case 2:
		printf("2");
	case 5:
		printf("3");
	case 3:
		printf("4");
		break;
	case 7:
		printf("6");
	}
}

输出结果:34

#include<stdio.h>
 
int main()
{
    
    
	int n = 5;
	switch (n){
    
    
	default:
		printf("1");
	case 2:
		printf("2");
	case 3:
		printf("3");
	}
}
 
 

输出结果:123

猜你喜欢

转载自blog.csdn.net/qq_30727593/article/details/126490600