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

时间:2022-12-11 20:51:49

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.代码

 #include <stdio.h>

 /*
if (条件)
{ } switch (数值)
{
case 数值1:
语句1;
break; case 数值2:
语句2;
break; default :
语句3;
break;
}
*/ int main()
{
//int a = 10;
// break:退出整个switch语句
// 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
/*
int b = 10; switch (a)
{
case 10:
printf("A\n");
b++;
case 5:
printf("B\n");
b++;
case 0:
printf("C\n");
b++;
break;
default:
printf("D\n");
break;
} printf("b的值是%d\n", b);*/ char c = '+';
int a = ;
int b = ;
// 如果要在case后面定义新的变量,必须用大括号{}包住
switch (c) {
case '+':
{
int sum = a + b;
printf("和是%d\n", sum);
break;
} case '-':
{
int minus = a - b;
printf("差是%d\n", minus);
break;
}
} return ;
}

4.练习

 /*
输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100 score/10 == 9、10
B:80~89 score/10 == 8
C:70~79 score/10 == 7
D:60~69 score/10 == 6
E:0~60
*/ #include <stdio.h> int main()
{
int score = ; switch (score/) {
case : //
case : // 90+
printf("A\n");
break;
case : // 80+
printf("B\n");
break;
case : // 70+
printf("C\n");
break;
case : // 60+
printf("D\n");
break;
default:
printf("E\n");
break;
} /*
if和switch
1> if语句能完成的功能,switch并不一定能完成
int a = 10;
if (a>100)
{ } 2> 在有些情况下,if语句和switch语句可以互换 3> switch能完成的功能,if语句都能完成
*/ return ;
}