IF语句
条件语句用于响应一个条件的两个方面。
例如:今天如果下雨,我们就在家;否则(不下雨)我们就去旅游。
又如:如果已经搜索得到结果,就打印出答案;否则(还没得到结果)就继续搜索。
IF语句的一般格式是:
IF 条件
THEN 语句1{条件为真时的响应、处理}
ELSE 语句2;{条件为假时的响应、处理}
使用条件语句时要注意:
1、条件语句是一个语句。IF、THEN、ELSE都是语句的一个部分。所以它只能有一个“;”作为分隔符,放在句子的结束,特别要注意不能放在ELSE 之前。
2、如果我们的程序只需对条件为真的情况作出处理,不需要处理条件为假的情况,则IF语句省略ELSE分句,格式变成:
IF 条件
THEN 语句1;{条件为真时的响应、处理}
如: 如果数a大于等于0则输出它的平方根。
if a>=0 then writeln(sqrt(a));
对以上的例子,条件为假时不需处理,于是我们干脆省去ELSE分句。
3、if语句可以多层嵌套。嵌套时为了避免误解,可以用begin ,end括起嵌套部分;else分句一般和最近的if分句配套:
IF 条件
THEN BEGIN
if 条件1then …… else ……;
END
ELSE BEGIN
if 条件2then …… else ……;
end; 例1、输入两个数a,b,输出较大的数。
program tt;
var a,b:integer;
begin
write('please input a,b:');
readln(a,b);
if a>b then writeln(a)
else writeln(b);
end.
4.2 CASE语句
分情况语句适用于对一个条件的多种情况的响应。
格式:
case 表达式 of
标号1:语句1;
标号2:语句2;
……
标号n:语句n;
else 语句n+1
end; case语句在使用时有几点要注意: 1.end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。 2.标号必须是一常量,其类型与表达式的类型一致
例2: 某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。
program pcase1;
var
oil,help:char;
kg,total:real;
begin
write('Enter the amount in kilograms(kg):');readln(kg);
write('Which type of the gasoline(a,b,c):');readln(oil);
wirte('Which type for service(f,m,e):'); readln(help);
case oil of
'a': total:=1.50*kg;
'b': total:=1.35*kg;
'c': total:=1.18*kg;
else writeln('Input Error!')
end;
{——————处理汽油的类型}
case help of
'f':;
'm': total:=total*(1-0.05);
'e': total:=total*(1-0.10);
else writeln('Input Error!')
end;
{——————处理服务类型}
writeln;
writeln('Total is ',total:10:2);
end.
3. 可以多个标号对应同一条语句 4.语句可以是多个语句,但必须用语句括号(begin……end)括起 5.case语句也可以嵌套
例3:从键盘上读入年和月,输出该月有多少天。
program pcase2;
var
year,month,day:integer;
runnian:boolean;
begin
write('Enter year and month:'); readln(year,month);
case month of
1,3,5,7,8,10,12: day:=31;
4,6,9,11: day:=30;{————以上处理31天和30天的情况}
2:begin
runnian:=(year mod 400=0) or((year mod 4=0) and (year mod 100<>0));
case runnian of
true:day:=28;
false:day:=29;
end;
end; {————以上处理2月的情况:闰年28天,平年29天}
end;
end.
|