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才能在适当的位置停止。
在这里插入图片描述

// 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语句通过将表达式的值与常量值进行比对,如果相等则执行后面的