📜  决策声明

📅  最后修改于: 2021-01-18 06:22:51             🧑  作者: Mango


决策对于计算机编程至关重要。在许多情况下,将为您提供两个或更多选项,并且您将必须根据给定条件选择一个选项。例如,我们要根据学生的安全标记打印有关学生的标记。以下是情况-

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 

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

执行以上程序后,将产生以下结果-

Student is average

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

同样,第二条if语句也可以工作。最后,执行第三个if语句,这里我们有以下两个条件-

  • 第一个条件是x> 95

  • 第二个条件是x <30

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

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

如果…否则声明

if语句后可以跟可选的else语句,该语句在布尔表达式为false时执行。用C编程语言编写的if … else语句的语法是-

if(boolean_expression) {
   
   /* Statement(s) will execute if the boolean expression is true */
} else {
  
  /* Statement(s) will execute if the boolean expression is false */
}

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

C if ... else语句

当我们必须从两个选项中做出决定时, if … else语句很有用。例如,如果学生获得的分数超过95,则该学生才华横溢,否则无法编码这种情况,如下所示-

#include 

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

执行以上程序后,将产生以下结果-

Student is not brilliant

如果… elseif … else语句

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

在使用if,else if,else语句时,有几点需要牢记-

  • 如果一个可以有零或一个人的,它必须来后否则,如果

  • 一个if可以有零到多个其他… if,并且它们必须比其他更早

  • 一旦一个else …如果成功,没有剩余其他…如果公司其他人的将受到考验。

C编程语言中if … else if … else语句的语法是-

if(boolean_expression 1) {

   /* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2) {

   /* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3) {

   /* Executes when the boolean expression 3 is true */
} else {
   
   /* Executes when the none of the above condition is true */
}

现在借助if … elseif … else语句,可以将第一个程序编码如下:

#include 

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

执行以上程序后,将产生以下结果-

Student is average

切换语句

switch语句是if语句的替代方法,它允许针对值列表对变量进行相等性测试。每个值都称为case ,并针对每个switch case检查要打开的变量。它具有以下语法-

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

switch语句中使用的表达式必须提供一个整数值,并将其与给定的不同情况进行相等性比较。无论表达式值与案例值匹配何处,都将执行该案例的主体,最后,将使用break语句终止开关。如果没有提供break语句,则计算机将继续执行下面针对匹配情况可用的其他语句。如果所有案例都不匹配,那么将执行默认案例正文。

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

C中的switch语句

现在,让我们考虑另一个示例,在该示例中,我们要为给定的数字编写等效的英语单词。然后,可以将其编码如下:

#include 

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

执行以上程序后,将产生以下结果-

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