switch case开关语句的坑

由于之前写的switch case 都是case语句后面有break的,因此也没有注意到一个知识点就是

 若case语句后面没有加break的话,会继续执行以下的case语句,不管是不是与条件相符,直到遇到第一个break才跳出switch结构

例题:

#include 
#include 

int main()
{
	int k=2,s=0;
	switch(k)
	{
		case 2:s++,k++;printf("--1--%d %d\n",s,k); //因为没有break所以要继续下面的case语句
		case 1:s++;printf("--2--%d %d\n",s,k);
		case 3:s+=1;printf("--3--%d %d\n",s,k);
			switch(s)
			{
				case 2:s+=2;printf("--4--%d %d\n",s,k);break;
				default:k++;printf("--5--%d %d\n",s,k);break;
			}
		default:s+=3;printf("--6--%d %d\n",s,k);
	}
	printf("%d %d",s,k);
}

运行结果:

switch case开关语句的坑_第1张图片

你可能感兴趣的:(c语言,switch,case)