📜  C语言中if-else与switch

📅  最后修改于: 2020-10-22 01:04:05             🧑  作者: Mango

if-else vs switch

什么是if-else语句?

C编程中的if-else语句是一个条件语句,该条件语句基于true或false条件执行一组不同的语句。仅当指定条件为真时才执行“ if”块,如果指定条件为假,则将执行else块。

if-else语句的语法如下:

if(expression)
{
    // statements;
}
else
{
   // statements;
}

什么是switch语句?

switch语句是C编程中使用的条件语句,用于检查变量的值并将其与所有情况进行比较。如果该值与任何情况都匹配,则将执行其相应的语句。每个案例都有一些名称或编号,称为标识符。用户输入的值将与所有案例进行比较,直到找到案例为止。如果用户输入的值与任何情况都不匹配,则将执行默认语句。

switch语句的语法如下:

switch(expression)
{
  case constant 1:
  // statements;
  break;
  case constant 2:
  // statements;
  break;
  case constant n:
  // statements;
  break;
 default:
// statements;
}

if-else和switch

if-else和switch都是决策语句。在这里,决策语句意味着表达式的输出将决定要执行的语句。

if-else和switch语句的区别

以下是if-else和switch语句之间的区别:

  • 定义

如果别的

根据“ if-else”语句中表达式的结果,将执行语句块。如果条件为真,则将执行“ if”块,否则将执行“ else”块。

切换语句

switch语句包含多种情况或选择。用户将决定要执行的情况。

  • 表达

如果别的

它可以包含一个表达式或用于多个选择的多个表达式。在这种情况下,将根据值或条件的范围评估表达式。它检查相等性和逻辑表达式。

开关

它仅包含一个表达式,该表达式可以是单个整数对象或字符串对象。它仅检查相等表达式。

  • 评价

如果别的

if-else语句可以评估几乎所有类型的数据,例如整数,浮点数,字符,指针或布尔值。

开关

switch语句可以计算整数或字符。

  • 执行顺序

如果别的

对于’if-else’语句,将根据条件执行’if’块或’else’块。

开关

对于’switch’语句,将连续执行一种情况,直到找不到break关键字或执行默认语句为止。

  • 默认执行

如果别的

如果在’if’语句中条件不成立,则默认情况下,将执行else块语句。

开关

如果switch语句中指定的表达式与任何一种情况都不匹配,则将执行默认语句(如果已定义)。

  • 价值观

如果别的

值基于’if’语句中指定的条件。该值将决定执行“ if”还是“ else”块。

开关

在这种情况下,价值由用户决定。根据用户的选择,案件将被执行。

如果别的

它评估条件为真还是假。

开关

switch语句将变量的值与多种情况进行比较。如果该值与任何一种情况都匹配,则将执行与此情况相关的语句块。

  • 编辑中

如果别的

在’if-else’语句中进行编辑并不容易,就像我们删除’else’语句一样,这将造成严重破坏。

开关

与’if-else’语句相比,在switch语句中进行编辑更容易。如果我们从开关中删除任何案例,那么它将不会中断其他案例的执行。因此,可以说switch语句易于修改和维护。

  • 速度

如果别的

如果选择多个,则“ if-else”语句的执行速度会很慢。

开关

switch语句中的case常量在编译时创建一个跳转表。该跳转表根据表达式的值选择执行的路径。如果我们有多种选择,那么switch语句的执行将比’if-else’语句的等效逻辑快得多。

让我们以表格形式总结以上差异。

If-else switch
Definition Depending on the condition in the ‘if’ statement, ‘if’ and ‘else’ blocks are executed. The user will decide which statement is to be executed.
Expression It contains either logical or equality expression. It contains a single expression which can be either a character or integer variable.
Evaluation It evaluates all types of data, such as integer, floating-point, character or Boolean. It evaluates either an integer, or character.
Sequence of execution First, the condition is checked. If the condition is true then ‘if’ block is executed otherwise ‘else’ block It executes one case after another till the break keyword is not found, or the default statement is executed.
Default execution If the condition is not true, then by default, else block will be executed. If the value does not match with any case, then by default, default statement is executed.
Editing Editing is not easy in the ‘if-else’ statement. Cases in a switch statement are easy to maintain and modify. Therefore, we can say that the removal or editing of any case will not interrupt the execution of other cases.
Speed If there are multiple choices implemented through ‘if-else’, then the speed of the execution will be slow. If we have multiple choices then the switch statement is the best option as the speed of the execution will be much higher than ‘if-else’.