当if-else
判断条件不太方便时,switch
语句就登场了。
因为if-else
语句用在编写2选1的情况下,要在多个选项中进行选择就不太适用了,这时候用switch
语句更加方便 。
但是如果根据*浮点型的变量
或者表达式
*来做选择,就无法使用switch
语句,如果根据变量在某个范围内决定程序的去向时,使用switch
的话就会很麻烦,这是用if
语句反而方便。
如:if(ch<1000 && ch >2)
下面来看看switch的具体用法:
//如果在VS上执行错误,请加上这条代码 #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
switch (a)
{
case 1:
printf("得数是1\n");
case 2:
printf("得数是2\n");
case 3:
printf("得数是3\n");
case 4:
printf("得数是4\n");
break;
}
return 0;
}
但输入1时,条件2,3,4的结论都会打印出来。结果如图所示:
但是我们想要的就是1的结果,这时候就要在每个条件后加个break来结束循环。代码如下:
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
switch (a)
{
case 1:
printf("得数是1\n");
break;
case 2:
printf("得数是2\n");
break;
case 3:
printf("得数是3\n");
break;
case 4:
printf("得数是4\n");
break;
}
return 0;
}
由此可以看出case
就像一个入口,break
就像一个出口,如果没有出口的话,代码就会从入口处一直往下执行,执行完下面的条件才结束,加上break才能在适当的位置停止。