决策语句

决策对于计算机编程至关重要。 在很多情况下,您会得到两个或多个选项,并且您必须根据给定的条件选择一个选项。 例如,我们想根据学生的安全分数打印有关该学生的评论。 以下是情况 −

Assume given marks are x for a student:

If given marks are more than 95, then
Student is brilliant

If given marks are less than 30, then
Student is poor

If given marks are less than 95 and more than 30, then
Student is average

现在的问题是如何编写编程代码来处理这种情况。 几乎所有编程语言都提供基于以下流程图的条件语句−

C 语言决策语句

让我们借助if条件语句编写一个C程序,将上述给定的情况转换为编程代码 −

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant
");
   }
   if( x < 30) {
	
      printf( "Student is poor
");
   }
   if( x < 95 && x > 30 ) {
	
      printf( "Student is average
");
   }
}

执行上述程序时,会产生以下结果 −

Student is average

上面的程序使用了if条件语句。 这里,第一个if语句检查给定条件,即变量x是否大于95,如果发现条件为真,则输入条件体来执行给定语句。 这里我们只有一个 printf() 语句来打印有关学生的评论。

类似地,第二个 if 语句 也有效。 最后执行第三个if语句,这里我们有以下两个条件 −

  • 第一个条件是 x > 95

  • 第二个条件是 x < 30

计算机评估给定的条件,然后在二元运算符&&的帮助下组合总体结果。 如果最终结果为 true,则执行条件语句,否则不执行任何语句。

本教程将为您介绍各种形式的 if 语句 的基本概念,并介绍 C 编程语言中可用的 switch 语句。 不同的编程语言提供不同类型的决策语句,但基本概念与本教程中解释的相同。

if...else 语句

if 语句后面可以跟一个可选的 else 语句,该语句在布尔表达式为 false 时执行。 C 编程语言中 if...else 语句的语法是 −

if(boolean_expression) {
   
   /* 如果布尔表达式为 true,则语句将执行 */
} else {
  
  /* 如果布尔表达式为 false,则语句将执行 */
}

以上语法可以用流程图的形式表示,如下图所示−

C if...else 语句

当我们必须从两个选项中做出决定时,if...else 语句非常有用。 例如,如果一个学生的分数超过 95,那么该学生很优秀,否则无法编码这种情况,如下 −

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant
");
   } else {
      printf( "Student is not brilliant
");
   }
}

执行上述程序时,会产生以下结果 −

Student is not brilliant

if...elseif...else 语句

if 语句后面可以跟一个可选的 else if...else 语句,这对于测试各种条件非常有用。

使用if、else if、else语句时,有几点需要牢记 −

  • 一个 if 可以有零个或一个 else,并且它必须位于 else if 之后。

  • 一个if可以有零到多个else…if's,并且它们必须位于else之前。

  • 一旦 else...if 成功,则不会测试剩余的 else...if'selse's

C 编程语言中 if...else if...else 语句的语法为 −

if(boolean_expression 1) {

   /* 当布尔表达式 1 为 true 时执行 */
}
else if( boolean_expression 2) {

   /* 当布尔表达式 2 为 true 时执行 */
}
else if( boolean_expression 3) {

   /* 当布尔表达式 3 为 true 时执行 */
} else {
   
   /* 当以上条件都不成立时执行 */
}

现在借助 if...elseif...else 语句,第一个程序可以编写如下 −

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
      printf( "Student is brilliant
");
   } 
   else if( x < 30) {
      printf( "Student is poor
");
   } 
   else if( x < 95 && x > 30 ) {
      printf( "Student is average
");
   }
}

执行上述程序时,会产生以下结果 −

Student is average

Switch 语句

switch 语句是 if 语句 的替代方案,它允许测试变量是否与值列表相等。 每个值称为一个 case,并且针对每个 switch case 检查正在打开的变量。 它具有以下语法 −

switch(expression){
   case ONE :
      statement(s);
      break;
   case TWO:
      statement(s);
      break;
   ......
   
   default :
      statement(s);
}

switch 语句中使用的表达式必须给出一个整数值,该值将与给定的不同情况进行比较是否相等。 只要表达式值与 case 值匹配,就会执行该 case 的主体,最后,将使用 break 语句终止 switch。 如果未提供中断语句,则计算机将继续执行下面针对匹配情况的其他可用语句。 如果没有任何 case 匹配,则执行默认 case 主体。

以上语法可以用流程图的形式表示,如下图所示−

C 语言中的 Switch 语句

现在,让我们考虑另一个例子,我们想要为给定的数字写出等效的英语单词。 那么,可以编码如下 −

#include <stdio.h>

int main() {
   int x = 2;
   
   switch( x ){
      case 1 :
         printf( "One
");
         break;
      case 2 :
         printf( "Two
");
         break;
      case 3 :
         printf( "Three
");
         break;
      case 4 :
         printf( "Four
");
         break;
      default :
         printf( "None of the above...
");
   }
}

执行上述程序时,会产生以下结果 −

Two

Java 中的决策

以下是用 Java 编写的等效程序,它也支持 ifif...elseif...elseif...elseswitch 语句。

您可以尝试执行以下程序来查看输出,该输出必须与上面的 C 示例生成的结果相同。

public class DemoJava {
   public static void main(String []args) {
      int x = 45;
   
      if( x > 95) {
         System.out.println( "Student is brilliant");
      } 
      else if( x < 30) {
         System.out.println( "Student is poor");
      } 
      else if( x < 95 && x > 30 ) {
         System.out.println( "Student is average");
      }
   }
}

执行上述程序时,会产生以下结果 −

Student is average

Python 中的决策

以下是用 Python 编写的等效程序。 Python 提供了 ifif...elseif...elif...elseswitch 声明。 在这里,您必须注意,Python 不使用大括号作为条件主体,而是简单地使用语句的缩进来标识块的主体。

您可以尝试执行以下程序看输出结果 −

x = 45

if x > 95:
   print "Student is brilliant"
elif x < 30:
   print "Student is poor"
elif x < 95 and x > 30:
   print "Student is average"

print "The end"

执行上述程序时,会产生以下结果 −

Student is average
The end