Pascal - 嵌套 if-then 语句


在 Pascal 编程中嵌套if-else语句始终是合法的,这意味着您可以在另一个ifelse if语句中使用一个ifelse if语句。Pascal 允许嵌套到任何级别,但是,这取决于特定系统上的 Pascal 实现。

句法

嵌套 if 语句的语法如下 -

if( boolean_expression 1) then
   if(boolean_expression 2)then S1

else
   S2;

您可以以与嵌套 if-then 语句类似的方式嵌套 else if-then-else。请注意,嵌套的if-then-else结构会导致哪些 else 语句与哪个 if 语句配对产生一些歧义。规则是 else 关键字与尚未与 else 关键字匹配的第一个 if 关键字(向后搜索)匹配。

上面的语法相当于

if( boolean_expression 1) then
begin
   if(boolean_expression 2)then
      S1
   
   else
      S2;
end;

它不等于

if ( boolean_expression 1) then  
begin  
   if exp2 then  
      S1  
end;  
   else  
      S2;

因此,如果情况需要稍后的构造,那么您必须将beginend关键字放在正确的位置。

例子

program nested_ifelseChecking;
var
   { local variable definition }
   a, b : integer;

begin
   a := 100;
   b:= 200;
   
   (* check the boolean condition *)
   if (a = 100) then
      (* if condition is true then check the following *)
      if ( b = 200 ) then
         (* if nested if condition is true  then print the following *)
         writeln('Value of a is 100 and value of b is 200' );
   
   writeln('Exact value of a is: ', a );
   writeln('Exact value of b is: ', b );
end.

当上面的代码被编译并执行时,它会产生以下结果 -

Value of a is 100 and b is 200
Exact value of a is : 100
Exact value of b is : 200
pascal_decision_making.htm