当
if-else
判断条件不太方便时,
switch
语句就登场了。
因为
if-else
语句用在
编写2选1
的情况下,要在多个选项中进行选择就不太适用了,这时候用
switch
语句更加方便 。
但是如果根据*
浮点型的变量
或者
表达式
*来做选择,就无法使用
switch
语句,如果根据变量在某个范围内决定程序的去向时,使用
switch
的话就会很麻烦,这是用
if
语句反而方便。
如:if(ch<1000 && ch >2)
下面来看看switch的具体用法:
#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才能在适当的位置停止。
// File name: Multi_select_Switch
// Last modified Date: 2021年10月29日10点42分
// Last Version: V1.0
// Descriptions: 使用switch语句实现多选
#include <iostream>
using namespace std;
void showmenu(); // function prototypes
void re
多选择结构还要一个实现方式就是switch case语句。
switch case语句判断一个变量与一系列值中某值是否相等,每个值成为一个分支。
switch语句中的变量类型可以是:
byte、short、int或者char
从JAVA SE7开始,switch支持字符串String类型了
同时case标签必须为字符串常量或字面量
switch(expression){
case value:
break; //可选
case value :
最近做电能表相关通信协议的工作,看了些开源代码,发现在一些有相同属性的变量处理上使用到了switch case语句,设计得比较精妙,当有多个属性相同的case值的时候可以执行具有相同属性的同一个语句,比如在通信协议中收到的电流、电压、有功功率帧数据都需要进行BCD码转float型的时候就可以用一个语句解决三种情况下的处理工作。
#include <stdio.h>
int main()
int a=0;
printf("input value
对于else if的理解应当结合另外一种
多重选择switch
switch()中的case 1, case2, case3 …
等价于else if(
执行该语句的条件1), else if(
执行该语句的条件2)…
而
switch()中的default()语句则等价于else
switch语句:
实际生活中,需要做出很多选择,大家都知道做选择可以使用if语句,但是如果选择太多,if语句使用起来就会很繁琐,这个时候就需要一个能将代码简化的语句,也就是我们今天的主角switch语句。
switch语句是一个多分支选择语句,并且可以支持嵌套。
switch语句的基本格式
switch(表达式)
case 常量1:语句1
case 常量2:语句2
default:语句n
break;
switch语句通过将表达式的值与常量值进行比对,如果相等则执行后面的