首页 > 学院 > 开发设计 > 正文

【学习笔记】【C语言】选择结构-switch

2019-11-14 18:52:30
字体:
来源:转载
供稿:网友

1.用法

switch(整型表达式)
{
    case 数值1:
        语句1;
        break;
    case 数值2:
        语句2;
        break;
    ... ...
    case 数值n:
        语句n;
        break;
    default :
        语句n+1;
        break;
}

当整型表达式的值等于“数值1”时,就会执行“语句1”,后面的break表示退出整个switch语句,也就是直接跳到第16行代码;

当整形表达式的值等于“数值2”时,就会执行“语句2”;后面的以此类推。如果在数值1~数值n中,没有一个值等于整型表达式的值,那么就会执行default中的语句n+1。

由于所有的case后面都有个break,因此执行完任意一个case中的语句后,都会直接退出switch语句

 

2.break的作用

break关键字的作用是退出整个switch语句。默认的格式中,每个case后面都有个break,因此执行完case中的语句后,就会退出switch语句。

1> 如果某个case后面没有break,意味着执行完这个case中的语句后,会按顺序执行后面所有case和default中的语句,直到遇到break为止。

 

3.代码

 1 #include <stdio.h> 2  3 /* 4  if (条件) 5  { 6   7  } 8   9  10  switch (数值)11  {12     case 数值1:13         语句1;14         break;15  16     case 数值2:17         语句2;18         break;19  20     default :21         语句3;22         break;23  }24  */25 26 int main()27 {28     //int a = 10;29     // break:退出整个switch语句30     // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止31     /*32     int b = 10;33     34     switch (a)35     {36         case 10:37             PRintf("A/n");38             b++;39         case 5:40             printf("B/n");41             b++;42         case 0:43             printf("C/n");44             b++;45             break;46         default:47             printf("D/n");48             break;49     }50     51     printf("b的值是%d/n", b);*/52     53     char c = '+';54     int a = 10;55     int b = 20;56     // 如果要在case后面定义新的变量,必须用大括号{}包住57     switch (c) {58         case '+':59         {60             int sum = a + b;61             printf("和是%d/n", sum);62             break;63         }64             65         case '-':66         {67             int minus = a - b;68             printf("差是%d/n", minus);69             break;70         }71     }72     73     return 0;74 }

4.练习

 1 /* 2  输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式) 3  A:90~100 score/10 == 9、10 4  B:80~89  score/10 == 8 5  C:70~79  score/10 == 7 6  D:60~69  score/10 == 6 7  E:0~60    8  */ 9 10 #include <stdio.h>11 12 int main()13 {14     int score = 100;15     16     switch (score/10) {17         case 10: // 10018         case 9: // 90+19             printf("A/n");20             break;21         case 8: // 80+22             printf("B/n");23             break;24         case 7: // 70+25             printf("C/n");26             break;27         case 6: // 60+28             printf("D/n");29             break;30         default:31             printf("E/n");32             break;33     }34     35     36     37     /*38      if和switch39      1> if语句能完成的功能,switch并不一定能完成40      int a = 10;41      if (a>100)42      {43      44      }45      46      2> 在有些情况下,if语句和switch语句可以互换47      48      3> switch能完成的功能,if语句都能完成49      */50     51     return 0;52 }

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表