1.认识:

switch  用于开关语句

case   声明开关语句的分支

break   跳出当前循环

default   开关语句的其他分支

常量包括:整型常量、实型常量、符号常量、字符型常量

2.一般形式:

swich(表达式)

{

  case 常量1: 语句1 ;break;

  case 常量2: 语句2;braak;

  ...

  case 常量n:    语句n;break;

  default 语句n+1;break;

}

3.语义:

首先计算 表达式,如果表达式的结果与某个常量值相等,则执行该常量值所对应的语句(遇到break则跳出整个循环),否则执行default 所对应的语句(若不存在default,则什么也不做)。

4.注意:

(1)switch用于Int /char/long/long long类型的变量和多个特定常量的判别处理,不能用于float和double类型,但可以经过数据类型转换后再使用。

(2)在case后的各常量表达式的值不能相同,否则会出现错误。

(3)不是每一个case都需要包含break.如果case语句不包含break,则继续执行后续的case,直到遇   到break为止。

(4)一个switch语句可以有一个default(也可以没有),出现在switch的结尾。default可用于上面所有case 都不为真时执行。

(5)如果每个case语句中都存在break语句,则各 case 和 default 子句的先后顺序的变动,不会影响程序执行结果。

5.简单举例:

#include<stdio.h>
main()
{
  int k;
  scanf("%d",&k);
  switch(k)
  {
     case 1: printf("a"); break;
     case 2: printf("b"); break;
     default: printf("c"); break;
  }
} 
  

  输入  2     输出  b

#include<stdio.h>
main()
{
  int k;
  scanf("%d",&k);
  switch(k)
  {
     case 1: printf("a"); break;
     case 2: printf("b"); 
     default: printf("c"); break;
  }
}   

输入2    输出bc(语句2没有break,则继续向下执行)

#include<stdio.h>
main()
{
  int k;
  scanf("%d",&k);
  switch(k)
  {
     case 1: printf("a"); break;
     default: printf("c"); break;
     case 2: printf("b"); break;
  }
}   

输入2   输出 b    (default 位置不影响执行结果)

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐