收藏 分享(赏)

if嵌套与case语句.doc

上传人:kpmy5893 文档编号:7654295 上传时间:2019-05-23 格式:DOC 页数:4 大小:38.50KB
下载 相关 举报
if嵌套与case语句.doc_第1页
第1页 / 共4页
if嵌套与case语句.doc_第2页
第2页 / 共4页
if嵌套与case语句.doc_第3页
第3页 / 共4页
if嵌套与case语句.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、第五课 if 嵌套与 case 语句一、复合语句在 IF 语句中,跟在 THEN 或 ELSE 后的语句可能不止一个,这是要用到复合语句的概念。复合语句是一个以 BEGIN 开始,以 END 结束的语句。在 BEGIN 与 END 之间可以包括若干个语句,每个语句之间以分号分开。般形式为:BEGIN语句 1;语句 2;.语句 n;END;例:读两个数将大数存于 x,小数存于 y。二、IF 语句的嵌套在 if 语句中,如果 then 子句或 else 子句仍是一个 if 语句, 则称为 if 语句的嵌套。例 1:输入某学生成绩,根据成绩的好坏输出相应评语。如果成绩在 90 分以上,输出评语:优秀

2、(outstanding) 。如成绩在 60 到 90 之间,输出评语:良(satisfactory) 。如果成绩不足 60 分,输出评语;不及格(unstatifactory).例 2: 计算下列函数 分析:根据输入的 x 值,先分成 x0 与 x0 两种情况,然后对于情况 x0,再区分x 是小于 0,还是等于 0。二义性的问题:由于 if 语句有两种形式(一种有 else,一种无 else),复合 if 语句可能有二义性,即可能有两种不同的理解。例:if 条件 1 then if 条件 2then 语句 1else 语句 2;为了避免二义性,pascal 系统规定 else 与它上面的距它

3、最近的 then 配对。例中明显,从程序书写格式可以看出,他想让 else 与第一个 if 配对,而事实上,这是错的。因为 pascal 规定:else 与它上面的距它最近的 then 配对,因此以上程序段的逻辑意义与题义不符。要使上程序段中 esle 与第一个 then 配对,应将程序段修改为:y:=0; 或者 y:=0;if x=0 if x=0then if x0 thenthen y:=1 beginelse y:=0 if x0 then Y:=1;else y:=-1; endelse Y:=-1;二、case 语句上面我们知道可以用嵌套的 if 语句实现多分支的选择结构。但是如果

4、分支越来越多时,用嵌套的 if 语句实现多分支就显得繁杂。当多分支选择的各个条件由同一个表达式的不同结果值决定时,可以用 case 语句实现。它的选择过程,很象一个多路开关,即由 case 语句的选择表达式的值,决定切换至哪一语句去工作。因此在分支结构程序设计中,它是一种强有力的手段。在实现多路径分支控制时,用 case 对某些问题的处理和设计,比用 if 语句写程序具有更简洁、清晰之感。(一) 、情况语句的一般形式:case of:语句 1;:语句 2;::语句 nend;其中 case、of、end 是 Pascal 的保留字, 表达式的值必须是顺序类型,它可以是整型、布尔型及以后学习的字

5、符型、枚举型和子界型。情况标号表是一串用逗号隔开的与表达式类型一致的常量序列。语句可以是任何语句,包括复合语句和空语句。(二) 、case 语句的执行过程先计算表达式(称为情况表达式)的值,如果它的值等于某一个常量(称为情况常量,也称情况标号) ,则执行该情况常量后面的语句,在执行完语句后,跳到 case 语句的末尾end 处。(三) 、说明情况表达式必须是顺序类型的;情况常量是情况表达式可能具有的值,因而应与情况表达式具有相同的类型;情况常量出现的次序可以是任意的;同一情况常量不能在同一个 case 语句中出现两次或两次以上;每个分语句前可以有一个或若干个用逗号隔开的情况常量;如果情况表达式

6、的值不落在情况常的范围内,则认为本 case 语句无效,执行 case 语句的下一个语句。turbo pascal 中增加了一个“否则“的情况,即增加一个 else 子句,但也是可省的。每个常量后面只能是一个语句或一个复合语句。例根据 x 的值,求函数 Y 的值: 分析:利用 case 语句进行程序设计, 关键在于巧妙地构造情况表达式。本例中三种情况可用一个表达式区分出来:Trunc(x/100)。因为 x 在(0100)之间时表达式值为 0;x 在100,200)时表达式值为 1 ;其余部分可用 else 子句表示。三、选择结构的程序设计例 3 输入一个年号,判断它是否是闰年。分析:判断闰年

7、的算法是:如果此年号能被 400 除尽, 或者它能被 4 整除而不能被100 整除,则它是闰年。否则,它是平年。例 4 判断 1995 年,每个月份的天数。分析:程序分为:输入月份 ,计算该月的天数,输出天数例 5 期未来临了,班主任决定将剩余班费 X 元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为 6 元、5 元和 4 元。小 Q 想买尽量多的笔(鼓励尽量多的同学) ,同时他又不想有剩余钱。请您编一程序,帮小 Q 制订出一种买笔的方案。分析:对于以上的实际问题,要买尽量多的笔,易知都买 4 元的笔肯定可以买最多支笔。因此最多可买的笔为 x div

8、4 支。由于小 q 要把钱用完,故我们可以按以下方法将钱用完:若买完 x div 4 支 4 元钱的笔,还剩 1 元,则 4 元钱的笔少买 1 支,换成一支 5 元笔即可;若买完 x div 4 支 4 元钱的笔,还剩 2 元,则 4 元钱的笔少买 1 支,换成一支 6 元笔即可;若买完 x div 4 支 4 元钱的笔,还剩 3 元,则 4 元钱的笔少买 2 支,换成一支 5 元笔和一支 6 元笔即可。从以上对买笔方案的调整,可以看出笔的数目都是 x div 4,因此该方案的确为最优方案。练 习1输入三角形的三个边,判断它是何类型的三角形(等边三角形?等腰三角形?一般三角形?) 。2输入三个数,按由大到小顺序打印出来。3计算 1901 年 2099 年之间的某月某日是星期几。4输入两个正整数 a,b。b 最大不超过三位数,a 不大于 31。使 a 在左,b 在右,拼接成一个新的数 c。例如:a 2,b16,则 c216;若 a18,b476,则 c18476。提示:求 c 的公式为:ca Kb其中:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报