if-else和switch之间的区别

作者: Laura McKinney
创建日期: 3 四月 2021
更新日期: 5 可能 2024
Anonim
switch vs. if-else in Java
视频: switch vs. if-else in Java

内容


“ If-else”和“ switch”都是选择语句。选择语句根据条件是“ true”还是“ false”将程序流转移到特定的语句块。 if-else和switch语句之间的根本区别是if-else语句“基于if语句中表达式的计算结果选择语句的执行”。 switch语句“通常基于键盘命令选择语句的执行”。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础如果别的开关
基本的将执行哪个语句取决于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,则将执行默认情况。


  1. if语句内的表达式决定是在if块内还是在else块下执行语句。另一方面,switch语句中的表达式决定执行哪种情况。
  2. 您可以使用多个if语句来选择多个语句。在switch中,对于多个选择,您只有一个表达式。
  3. if-esle语句检查是否相等以及逻辑表达式。另一方面,switch只检查是否相等。
  4. if语句计算整数,字符,指针或浮点类型或布尔类型。另一方面,switch语句仅计算字符或整数数据类型。
  5. 执行顺序类似于if块下的语句或else块下的语句。另一方面,switch语句中的表达式决定执行哪种情况,如果您在每种情况后不应用break语句,则表达式将一直执行到switch语句结束。
  6. 如果内部表达式结果为假,则将执行else块内部的语句。如果switch语句内的表达式为false,则执行默认语句。
  7. 编辑if-else语句很困难,因为要跟踪需要更正的位置很麻烦。另一方面,由于很容易跟踪开关语句,因此很容易编辑它们。

结论:

switch语句为不同的语句创建了单独的案例,因此易于编辑,而在嵌套的if-else语句中,很难识别要编辑的语句。