17xie > Quick BASIC程序设计实用教程 > 第六章 选择结构
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-6155.html    注册17xie 一起来写书 实现您的出书梦想!

第六章  选择结构

一个顺序结构程序,在BASIC中总是按语句行号的大小顺序执行;在Quick BASIC中是按语句的先后次序执行。也就是说,流程是单一直线进行的。它虽简单易懂,但功能有限,不能解决复杂的实际问题。本章将要介绍的选择结构,是要利用计算机的逻辑判断能力,根据确定的条件是否满足,有选择地执行某些语句或程序段,这种程序的执行顺序被改变了。所以选择结构的流程就不是单一直线的,而是发生了分叉,或称为分支。根据分支路的多少,可分为两路分支选择和多路分支选择两类。本章涉及的内容包括:

n          IF语句

n          IF结构

n          SELECT CASE结构

n          选择结构的嵌套

本章的难点在于选择结构的嵌套部分的学习和理解。

6.1  引例

例如  有一函数:

要求输入一个X值,计算并打印大于Y的值。

算法:根据X的值是否大于2,分为两种计算方法,这是一个最简单的两分支结构。N-S流程图如图6-1所示。

如图6-1  N-S流程图

源程序:

INPUTX is”;X

IF X<2 THEN Y2*X+3  ELSE YX+5

PRINT Y=”;Y

END

程序中第2行语句是一个行IF语句,其中X<2成立的话,即条件为真,那么就执行THEN后面的赋值语句,即Y2*3X+3;否则如果X<2不成立的话,即条件为假,那么就执行行ELSE后面的赋值语句,即YX+3。注意,两个分支只选择其中一个分支执行。

6.2  IF的语句

6.2.1  语句格式

IF  〈条件〉 THEN  {〈语句〉丨〈行号〉}ELSE{〈语句〉丨〈行号〉}

〈条件〉:用关系表达式或逻辑表达式表示

〈语句〉丨〈行号〉:在THENELSE后面可以是语句或行号。如果是语句的话,允许写多个语句,但各语句之间要有冒号分开;如果是行号的话,只允许写一个行号,这个行号必须是该程序存在的语句行号。建议初学者不使用行号。

6.2.2  功能

IF语句的流程图如6-2所示。

6-2  IF语句的流程图

首先,对表示条件的关系表达式或逻辑表达式进行运算,根据其结果的逻辑值分别选择两路分支中的一支,即:如果逻辑值为“真”,条件成立,执行THEN后的语句,ELSE后的语句不执行;如果逻辑值为“假”,条件不成立,执行ELSE后的语句,THEN后的语句不执行。

6.2.3  举例

[6-1]  从键盘上输入两个数MN,如果N不等于0,打印出商M/N,否则打印出无商的信息。

算法:

1.输入被除数M和除数N的值;

2.判断N〈〉0?按分支处理。

N-S图如图6-3所示。

6-3  N-S

源程序:

REM EXAMPLE 1

IF N<>0 THEN PRINT "The Quotinet is":M/N

ELSE PRINT "Quotinent undefined"

END

[6-2]  从键盘上输入3个数,找出其中最大的数。

算法:1.输入ABC3个数;

      2A存入一变量BIG

      3.如果B>BIG,把B存入BIG

4.如果C>BIG,把C存入BIG

5.打印BIG的值。

N-S图如图6-4所示。

 

源程序:

REM EXAMPLE 2

INPUT ABC

BIGA                                                    6-4  N-S

IF B>BIG THEN BIGB

IF C>BIG THEN BIGC

PRINT The bigest is”;BIG

END

程序说明:

IF-THEN-ELSE结构中,允许ELSE部分省略,就成了IF-THEN结构,其N-S图如6-4。由图中可以看出,当条件成立,关系表达式的值为真,就执行THEN后的语句;否则,条件不成立就什么也不处理,程序执行下一个语句。

6.3  IF

IF语句的结构可以分为3个部分:IF〈条件〉部分:THEN语句部分;ELSE语句部分。在问题简单的情况下,3部分写在一行还容易看懂,但当问题复杂的时候,3部分写在一行里就不便于阅读了。Quick BASIC中,对这个语句加以扩充,将这3个部分分成若干语句行,构成一段程序块,即块IF,这样结构更清楚明了,功能更强,使用也更方便,而且行IF语句的功能,都可以用块IF实现。

6.3.1  IF的格式

IF  〈条件〉  THEN

}S1〈语句组1

ELSE

}S2〈语句组2

END IF

其中

〈条件〉――用关系表达式或逻辑表达式表示;

S1――条件成立时执行的语句组;

S2――条件不成立执行的语句组。

6.3.2  功能

如图6-5所示。如果IF语句中的条件成立的话,就执行S1的语句;S1执行后,程序跳过S2,转到END IF语句的下一个语句并继续执行;

6-5  IF语句

如果IF语句中的条件不成立的话,就跳过SI,执行ELSE 后的S2语句,执行完S2后,转到END IF的下一个语句并继续执行。

总之,它对两个分支,只取其一执行。

6.3.3  举例

[6-3]  判断一个数是偶数还是奇数。

源程序:

'EXAMPLE 3

DEFINT A-Z

INPUT Num

IF Num MOD 2=0  THEN

PRINT Num"is a event number"

ELSE

PRINT Num"is a odd number"

END IF

END

说明:

程序中的DEFINT是一个整型变量说明语句,凡是以A~Z开头的变量都是整型。

[6-4]  任意输入3个数ABC,找出其中最大的数和最小的数。

算法:

1.先比较AB,大者赋值给MAX,小者赋值给MIN

2.再将MAXC比较,大者存入MAX

3.再将MINC比较,小者存入MIN

4.输出MAXMIN

N-S图如图6-6所示。

6-6  N-S

源程序:

EXAMPLE 4

INPUT  "A,B,C="ABC

IF A>B THEN

MAXA

MINB

ELSE

MAXB

MINA

END IF

IF C>MAX THEN


字数:3386    最后更新:1年以前 [08-24 10:12]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第五章  [后一页]:第六章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号