if-else和switch之间的区别
内容
“ If-else”和“ switch”都是选择语句。选择语句根据条件是“ true”还是“ false”将程序流转移到特定的语句块。 if-else和switch语句之间的根本区别是if-else语句“基于if语句中表达式的计算结果选择语句的执行”。 switch语句“通常基于键盘命令选择语句的执行”。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 如果别的 | 开关 |
---|---|---|
基本的 | 将执行哪个语句取决于if语句内部表达式的输出。 | 将执行哪个语句由用户决定。 |
表达 | if-else语句将多条语句用于多个选择。 | switch语句将单个表达式用于多个选择。 |
测试中 | if-else语句测试是否相等以及逻辑表达式。 | switch语句仅测试是否相等。 |
评价 | if语句计算整数,字符,指针或浮点类型或布尔类型。 | switch语句仅计算字符或整数值。 |
执行顺序 | 要么执行语句,要么执行语句。 | switch语句一个接一个地执行,直到出现break语句或到达switch语句的末尾。 |
默认执行 | 如果if语句中的条件为false,那么默认情况下,如果创建则执行else语句。 | 如果switch语句中的条件与任何情况都不匹配,那么对于该实例,默认语句将在创建后执行。 |
编辑中 | 如果使用嵌套的if-else语句,则很难编辑if-else语句。 | 编辑开关盒很容易,因为它们很容易识别。 |
if-else的定义
if-else语句属于OOP中的选择语句。 if-else语句的一般形式如下
if(expression){语句} else {语句}
其中“ if”和“ else”是关键字,这些语句可以是单个语句或语句块。对于任何非零值,表达式的求值为“ true”,对于零,表达式的求值为“ false”。
if语句中的表达式可以包含整数,字符,指针,浮点数,也可以是布尔类型。 else语句在if-else语句中是可选的。如果表达式返回true,则执行if语句中的语句,如果返回false,则执行else语句中的语句,如果未创建else语句,则不执行任何操作,并且程序的控制跳出if-else语句。
让我们以一个例子来理解。
int i = 45,j = 34;如果(i == 45&j == 34){cout <<“ i =” < 开关的定义
switch语句是多选选择语句。 switch语句的一般形式如下
switch(expression){case constant1:statement(s);打破;大小写常量2:语句;打破;大小写常量3:语句;打破; 。 。默认声明; }
表达式计算整数或字符常量的地方。此处的表达式仅求相等。根据case语句中存在的常量验证该表达式。如果找到匹配项,则执行与该情况相关的语句,直到发生“中断”。因为break语句在case语句中是可选的,所以如果break语句不存在,那么直到switch语句结束,执行才会停止。
该表达式仅包含一个表达式。 switch语句通常使用键盘命令在多个case语句中选择一个。
int c; cout <<“从1到3”中选择值; cin >> i; switch(i){情况1:cout <<“您选择深色巧克力”;打破;情况2:cout <<“您选择糖果”;打破;情况3:cout <<“您选择棒棒糖”;打破; 。 。默认cout <<“您什么都不选择”; }
在此,值“ i”将决定要执行哪种情况,如果用户给出的值“ i”不是1、2或3,则将执行默认情况。
- if语句内的表达式决定是在if块内还是在else块下执行语句。另一方面,switch语句中的表达式决定执行哪种情况。
- 您可以使用多个if语句来选择多个语句。在switch中,对于多个选择,您只有一个表达式。
- if-esle语句检查是否相等以及逻辑表达式。另一方面,switch只检查是否相等。
- if语句计算整数,字符,指针或浮点类型或布尔类型。另一方面,switch语句仅计算字符或整数数据类型。
- 执行顺序类似于if块下的语句或else块下的语句。另一方面,switch语句中的表达式决定执行哪种情况,如果您在每种情况后不应用break语句,则表达式将一直执行到switch语句结束。
- 如果内部表达式结果为假,则将执行else块内部的语句。如果switch语句内的表达式为false,则执行默认语句。
- 编辑if-else语句很困难,因为要跟踪需要更正的位置很麻烦。另一方面,由于很容易跟踪开关语句,因此很容易编辑它们。
结论:
switch语句为不同的语句创建了单独的案例,因此易于编辑,而在嵌套的if-else语句中,很难识别要编辑的语句。