switch语句(一般使用在多分支的语句中,同时允许嵌套使用)

最简单的格式如下:

switch(整型表达式)
{
	语句项;
}

举个例子:

#include<stdio.h>
int main()
{ 
 int day=0;
 scanf("%d",&day)
 switch(day)
 { case 1:
			printf("星期一\n");
   case 2:
			printf("星期二\n");
   case 3:
			printf("星期三\n");
   case 4:
			printf("星期四\n");
   case 5:
			printf("星期五\n");
   case 6:
			printf("星期六\n");
   case 7:
			printf("星期日\n");
 }
 return 0;
}

case的使用:一般该语句与case一同使用,case语句后应是整型常量表达式,结尾应有冒号。但如果代码像上面一样的话,结果没办法结束,所以我们应该在最后加上break,如下:

#include<stdio.h>
int main()
{ 
 int day=0;
 scanf("%d",&day)
 switch(day)
 { case 1:
			printf("星期一\n");
  			break;
   case 2:
			printf("星期二\n");
  			break;
   case 3:
			printf("星期三\n");
  			break;
   case 4:
			printf("星期四\n");
  			break; 
   case 5:
			printf("星期五\n");
  			break;
   case 6:
			printf("星期六\n");
  			break;
   case 7:
			printf("星期日\n");
  			break;
 }
 return 0;
}

若输入的表达式在switch语句中无法运行,应在后面加入default(这个也不是一定要的,可以省略)

#include<stdio.h>
int main()
{ 
 int day=0;
 scanf("%d",&day)
 switch(day)
 { case 1:
			printf("星期一\n");
  			break;
   case 2:
			printf("星期二\n");
  			break;
   case 3:
			printf("星期三\n");
  			break;
   case 4:
			printf("星期四\n");
  			break; 
   case 5:
			printf("星期五\n");
  			break;
   case 6:
			printf("星期六\n");
  			break;
   case 7:
			printf("星期日\n");
  			break;
   default:
  			printf("输入错误\n");
  			break;
 }
 return 0;
}

当然,case后面不一定要break,如下所示:

#include<stdio.h>
int main()
{ 
 int day=0;
 scanf("%d",&day)
 switch(day)
 { case 1:
   case 2:
   case 3:
   case 4:
   case 5:
  			printf("工作日\n");
  			break;
   case 6:
   case 7:
			printf("休息日\n");
  			break;
   default:
  			printf("输入错误\n");
  			break;
 }
 return 0;
}

最后,switch语句还可以嵌套使用

#include<stdio.h>
int main()
{
  int n=1;
	int m=2;
	switch(n)
  {case 1:
   			n++;
   case 2:
   			m++;
   case 3:
   			switch(n)
        {case 1:
         			n++;
         case 2:
         			m++;
         			n++;
         			break;
        }
   case 4:
   			m++;
   			break;
   default:
   			break;   
   }   
  printf("m=%d\n,n=%d\n",m,n);
  return 0;
}