你的位置:首页 > 操作系统

[操作系统]【学习笔记】【C语言】选择结构


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 }