决策
决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及确定条件为真的情况下要执行的一条或多条语句,以及如果条件被确定为可选的其他执行语句确定为假。以下是大多数编程语言中常见的典型决策结构的一般形式-
Pascal编程语言提供以下类型的决策声明。单击以下链接以查看其详细信息。
声明 |
描述 |
if - then 语句 |
if-then语句由布尔表达式和一个或多个语句组成。 |
If-then-else 语句 |
if-then语句后可以跟可选的else语句,该语句在布尔表达式为false时执行。 |
嵌套 if 语句 |
您可以在另一个if or else if语句中使用一个if or else if语句。 |
case 语句 |
case语句允许针对值列表对变量进行相等性测试。 |
case - else 语句 |
它类似于if-then-else语句。 在此,case语句后面还有一个else术语。 |
嵌套 case 语句 |
您可以在另一个case语句中使用一个case语句。 |
范例 - if - then声明:
program ifChecking;
var
{ local variable declaration }
a:integer;
begin
a:= 10;
(* check the boolean condition using if statement *)
if( a < 20 ) then
(* if condition is true then print the following *)
writeln('a is less than 20 ' );
writeln('value of a is : ', a);
end.
尝试一下
范例 - if..then..else声明:
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.
尝试一下
范例 - 嵌套if语句:
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.
尝试一下
范例 - case语句:
以下规则适用于switch语句
- case语句中使用的表达式必须具有整数或枚举类型,或者是类类型,其中该类具有到整数或枚举类型的单个转换函数。
- 一个case语句中可以有任意数量的case语句。每个case后面都跟要比较的值和一个冒号。
- case的case标签必须与case语句中的表达式具有相同的数据类型,并且必须是常量或字面量。
- 编译器将计算大小写表达式。如果case标签的值之一与表达式的值匹配,则执行该标签后的语句。之后,程序将在最后end处继续。
- 如果所有case标签都不匹配表达式值,则执行else或else关键字之后的语句列表。这可以是一个空的语句列表。如果没有其他部分,并且没有大小写常量与表达式值匹配,则程序流程将在end结束之后继续。
- case语句可以是复合语句(即Begin ... End块)。
program checkCase;
var
grade: char;
begin
grade := 'A';
case (grade) of
'A' : writeln('Excellent!' );
'B', 'C': writeln('Well done' );
'D' : writeln('You passed' );
'F' : writeln('Better try again' );
end;
writeln('Your grade is ', grade );
end.
尝试一下
program checkCase;
var
grade: char;
begin
grade := 'F';
case (grade) of
'A' : writeln('Excellent!' );
'B', 'C': writeln('Well done' );
'D' : writeln('You passed' );
else
writeln('You really did not study right!' );
end;
writeln('Your grade is ', grade );
end.
尝试一下
范例 - 嵌套的case语句:
program checknestedCase;
var
a, b: integer;
begin
a := 100;
b := 200;
case (a) of
100: begin
writeln('This is part of outer statement' );
case (b) of
200: writeln('This is part of inner statement' );
end;
end;
end;
writeln('Exact value of a is : ', a );
writeln('Exact value of b is : ', b );
end.
尝试一下