上海少科站PASCAL第六次课if语句的嵌套case语句_第1页
上海少科站PASCAL第六次课if语句的嵌套case语句_第2页
上海少科站PASCAL第六次课if语句的嵌套case语句_第3页
上海少科站PASCAL第六次课if语句的嵌套case语句_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、第四章 练习题15题讲解 2、第四章 第二节 if语句的嵌套3、第四章 第三节 case语句4、编程练习第二节 if语句的嵌套if语句由一个布尔表达式和两个供选择的语句组成。运行时根据布尔表达式求值的结果,选取其中之一的语句 执行。有两种形式的if语句:if v布尔表达式 then v语句I ifv布尔表达式then v语句I el se v语句 2条件语句中的语句1或语句2原则上说可以是任何语句,当然也可以是条件语句。当语句1或语句2仍是条件语句时,称为条件语句嵌套。形成嵌套的重要目的是为解决较为复杂的、多种条件出现的问题。|嵌套情况可以分为两种:一是语句1中包含if语句,二是语句 2中

2、包含if语句。下面分别来讨论这两种情况下怎么使用条件语句。(一)if语句嵌套在then子句中 它的一般形式:if布尔表达式1the nif布尔表达式2the n 语句21 else 语句22 else 语句12这是包含一个条件语句的情况,其实话句21还可以再嵌套条件语句,以此类推,形成多层嵌套。由于 else后的子句是可省的,而在嵌套时else是与它最近的那个尚未与其他else配对的ifthen相匹配。所以内层的else子句不能省,否则将造成逻辑错误,解决的办法就是写一个空语句或者采用复合语句,即增加语句括号。另外,请读 者在书写程序时,采用缩进式,以增强程序的可读性。例bc4_2 输入三角形

3、的三边,判断它是否是直角三角形。 分析首先判断用户输入的数据是否能够构成三角形,然后再判断它是不是直角三角形。具体编码程序如下:program bc4_2;vara,b,c:i nteger;beginwrite(Please en ter sides of tria ngle a,b,c(i nteger):);readl n( a,b,c);if (a+bc) and (b+ca) and (c+ab)the nif(a*a+b*b=c*c) or (b*b+c*c=a*a) or (c*c+a*a=b*b)the nwritel n( a=,a:3, b=,b:3, c=,c:3, is

4、 rt tria ngle.)elsewriteln( a=,a:3, b=,b:3, c=,c:3, is not rt triangle.)elsewritel n( a=,a:3, b=,b:3, c=,c:3, is n ot tria ngle.);readlnend.运行结果:Please enter sides of triangle a,b,c:3 4 5第一次运行 a= 3 b= 4 c= 5 is rt triangle.Please enter sides of triangle a,b,c:4 7 6第二次运行 a=4b=7c=6is not rt triangle.P

5、lease enter sides of triangle a,b,c:1 2 1第三次运行a=1b=2c=1is not triangle .上面的程序就是then子句含有条件语句的嵌套。(二)if语句嵌套在else子句中这种形式嵌套,外层的与内层的相接,若采用缩进式格式,对嵌套层数多时,有时难于在一个程序行内写完, 给调试与阅读程序时带来困难,因此,通常写成下面的形式:if布尔表达式1then语句11else if 布尔表达式2then语句21else if 布尔表达式n then语句n1 else语句n2if、then和e1相互配对,适当地对于条件语句的嵌套,不管它有多复杂,只要注意采用

6、缩进式格式书写程序, 使用复合语句形式,即增加语句括号,就能顺利解决问题了。例bc4_3 符号函数:-+1(x0)y=0(x=0)-1(x0the ny:=1elseif x=0the ny:=0elsey:=-1;writel n( x=,x:12:4, ,y=,y:3:1); readlnen d.第一次运行运行结果:Please en ter nu mber of x:12.45x= 12.4500y=1.0Please en ter nu mber of x:0x=0.0000 y=0.0Please en ter nu mber of x:12.45x=-12.4500 y= -1.

7、0第二次运行第三次运行例bc4_4 设val是一个整型变量,希望其值介于1与31之间,用if语句嵌套,使实现:若val的值越界,即val31,则输出相应的文字信息。分析对于此题,给出如下的程序编码,请读者想一想是否正确?若不正确,应怎样修改?program bc4_4;varval:i nteger;beginwrite(Please en ter val( in teger):); readl n( val);if val=1 the nif val31.)elseelse write In (Error: val=1the nIif val31 then writeln(Error: va

8、l31.)I;else write In (Your en teded val is:,val)IelseIwritel n(Error: val1.);Ireadl nIen d.第三节 case语句(分情况语句)上一节介绍的具有多分支的选择结构是用if语句实现的。当多分支选择的各个条件是由同一个表达式的不同结果值决定时,Turbo Pascal为我们提供了 case语句来实况它的选择过程很象一个多路开关,即由语句选择表达式的值,决定切换至哪一路去工作。因此,在程序设计中,它是一种强有力的手段。在实现多路径分支控制时,有时用case对某些问题的处理和设计,比用if语句的程序更简洁、更清晰。语

9、句的格式:case v选择表达式 of 情况常量1 :语句1; 情况常量2 :语句2; 情况常量n:语句n;else语句n十1end其中case 此else、end为保留字,其表 达式部分可以是整型、字符型、布尔型以及 用户自定义的枚举和子界类型, 但不能是实 型。确切地说,情况表达式只能是顺序类型, 其后的常量称为情况常量,是根据将要选择情况设置的常量。在程序设计中,语句前面的情况常量部分可由具体问题决定由一个或多个常量构成。当出现多个 情况常量时,它们之间用逗号隔开。情况常量应与表达式具有相同的类型。case语句的执行部分如图所示。由图可见,该语句的执行过程为:首先计算表达式的值,若其值与

10、of后面的情况常量之一相等,则执行该情况常量后的语句部分,然后将其转到case语句的结尾。如果选择表达式不与任何情况常量相等,则判断else是否存在;若存在则执行e1 “后的语句部分,执行后再转到case语句结尾,否则直接转到case语句结尾。其中,语句部分可以是复合语句或空语句。即case语句执行与表达式值相匹配的case常数所指向的那条语句。如果没有相匹配得知, 则执行else部分或什么也不做。再case语句中,else前面的语句末尾有分号, 与if-then-else语句中分号的用法不同。 应该引起注意的是: if语句是二选一,而case语句是多选一,它是通过表达式的切换来达到多路径的控

11、制功能。case语句对多分支结构描述十分清晰,使用十分方便。例bc4_5试编写一个根据用户键入的两个操作数和一个运算符,由计算机输出运算结果的程序。 分析这里只考虑加(十)、减()、乘(x)、除(/)四种运算,利用case语句编程如下:program bc4_5;varresult,x,y:real;ch:char;beginwrite( input x,y:);readl n( x,y);write( in put operator(+,-,*,/):);readl n( ch);result:=0;case ch of+: result:=x+y;-:result:=x-y;*: result:=x*y;/: begin if y0the n result:=x/yelse writeln(divide overflow!)en d;en d;write(x:6:2,ch:2,y:6:2,=);if n ot (y0) and (ch=/)then writeln(divide overflow!)else write ln( result:6:2);readlnen d.例4-6输出一位数字的英语拼法。(见教材:p2425)例4-7求两个实数的和、差、积、商。(略)例4-8根据学生的成绩给予对应的等第。对应关系如下表所示。(见教材:p2526)成绩等第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论