Pascal - if then else 语句

if-then 语句后面可以跟一个可选的 else 语句,该语句在布尔表达式为 false 时执行。

语法

if-then-else 语句的语法是 −

if condition then S1 else S2;

其中,S1S2是不同的语句。 请注意,语句 S1 后面没有分号。 在if-then-else语句中,当测试条件为true时,执行语句S1,跳过S2; 当测试条件为 false 时,则绕过 S1 并执行语句 S2。

例如,

if color = red then
   writeln('You have chosen a red car')

else
   writeln('Please choose a color for your car');

如果布尔表达式条件计算结果为true,则将执行if-then代码块,否则将执行else代码块。

Pascal 假定任何非零和非零值均为 true,如果为零或 nil,则假定为 false 值。

流程图

Pascal if-then-else 语句

示例

让我们尝试一个完整的示例来说明这个概念 −

program ifelseChecking;
var
   { local variable definition }
   a : integer;

begin
   a := 100;
   (* check the boolean condition *)
   if( a < 20 ) then
      (* if condition is true then print the following *)
      writeln('a is less than 20' )
   
   else
      (* if condition is false then print the following *) 
      writeln('a is not less than 20' );
      writeln('value of a is : ', a);
end.

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

a is not less than 20
value of a is : 100

if-then-else if-then-else 语句

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

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

  • if-then 语句可以有 0 个或 1 个 else,并且它必须位于任何 else if 之后。

  • if-then 语句可以有零到多个 else if,并且它们必须位于 else 之前。

  • 一旦 else if 成功,则不会测试其余的 else if 或 else。

  • 最后一个 else 关键字之前没有分号 (;),但所有语句都可以是复合语句。

语法

Pascal 编程语言中 if-then-else if-then-else 语句的语法为 −

if(boolean_expression 1)then 
   S1 (* Executes when the boolean expression 1 is true *)

else if( boolean_expression 2) then 
   S2 (* Executes when the boolean expression 2 is true *)

else if( boolean_expression 3) then 
   S3 (* Executes when the boolean expression 3 is true *)

else 
   S4; ( * executes when the none of the above condition is true *)

示例

下面的例子说明了这个概念 −

program ifelse_ifelseChecking;
var
   { local variable definition }
   a : integer;

begin
   a := 100;
   (* check the boolean condition *)
   if (a = 10)  then
      (* if condition is true then print the following *)
      writeln('Value of a is 10' )
   
   else if ( a = 20 ) then
      (* if else if condition is true *)
      writeln('Value of a is 20' )
   
   else if( a = 30 ) then 
      (* if else if condition is true  *)
      writeln('Value of a is 30' )
   
   else
      (* if none of the conditions is true *)
      writeln('None of the values is matching' );
      writeln('Exact value of a is: ', a );
end.

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

None of the values is matching
Exact value of a is: 100

❮ pascal_decision_making.html