有图小站

关注电脑网络,记录健康生活。有图小站,价值分享。

当前位置: 首页 > 程序设计 > 分支语句练习

分支语句练习

有了上一节的qb if分支结构训练,相信很多朋友对qbasic的分支结构多少有些想法和思路了,但是遇到真实的问题,我们是否会想到使用分支结构来解决才是重要的。也许我们在if分支结构那篇中的例子比普通的教科书中的来的难一些,但是都会是实际遇到问题。今天的三个练习也是如此,希望大家通过今天的练习对分支结构有更多的认识,同时我们在最后会给大家初步总结多种分支结构的使用。

练习1、比较两个数字,按从大到小输出。

“比较并排序”在程序中使用的最频繁的一种模块,简单的是两个数,三个稍微复杂,更为复杂的是多个数字的排序。比方说我们经常使用的Windows的文件件排序方式,会用到这个比较排序,按名称比较的是拼音的先后顺序,按修改时间是比较时间的大小并输出,按大小是比较存储容量的大小并显示给我们。再比如我们经常使用的Excel最为常用的一个操作就是排序,不管是顺序还是倒序,在Excel都要经过一个比较排序的过程。

就这个例子而言,是最简单的。简单的一句话就可以搞定,当然你想绕个圈子,用传统的结构比较交换也可以完成。我们先写一个简单的。

cls
input "a,b";a,b
if a>b then print a,b else print b,a
end

这个例子中,我们添加了一句input,从键盘接受两个数字,如果真的程序当中,这个两个数字是上部程序接受,所以最核心的if……then……结构一句话就完成了比较并输出。

另一种传统的比较交换我们也给大家试一下,这对于将来多个数的比较有引导意义。

cls
input "a,b";a,b
if a<b then
c=a
a=b
b=c
end if
print a,b
end

注意:这个例子中使用了语句块的结构,这个结构我在上一节的例子中已经使用,但没有说出来。今天特别说出来,就是让大家注意,if语句块特别用于执行多个动作的时候。详细参考下面的结构:

if 条件1 then
语句块1
elseif 条件2 then
语句块2
else
条件3
end if

如果使用标准结构是这样的:

if 条件1 then
语句块1
else
if 条件2 then
语句块2
else
条件3
end if
end if

大家看到这两个结构的不同,第一个使用的是elseif,所以最后只有一个end if,而第二中结构使用else和下一个if分行的方式所以后面要有多个end if来对应,到底需要几个end if 那要视前文当中用到了几个以 if 开头的语句。

练习2、判断一个年龄的数字,如果小于6岁,请标识“er tong”,6-18岁标识“shao nian”,19-28岁标识“qing nian”,超过28岁标识“cheng nian”。

这个题目是个多区段分隔的问题,我们可以分为 <6、6-18、19-28、>28四个区段,那么我们可以使用if分支来完成。

cls
input "nian ling shu";x
if x<6 then print "er tong" else if x<=18 then print "shao nian" else if x<=28 then print "qing nian " else print "cheg nian"
end

当然你想麻烦一点就可以使用if……then和else分行的结构,如下图

cls
input "nian ling shu";x
if x<6 then
print "er tong"
elseif x<=18 then
print "shao nian"
elseif x<=28 then
print "qing nian "
else
print "cheg nian"
end if
end

当然你如果更复杂一点的话,可以将else和下一个if也分行,而不是用esleif,当然,如果那样,你的最后需要几个end if来对应,具体,我就不再尝试了。

练习3、将三个数按从大到小的顺序输出。

这是典型的比较大小问题,被各种程序语言奉为必备的例子。但是很多书本上只是说出了判断的逻辑,并没有说明最关键的东西。

比较三个数的大小最关键的是我们一定要想到我们是以找到小为目标,还是以找到大为目标。

下面的例子是以找大为目标的结构:

cls
input "a,b,c";a,b,c
if a<b then
x=a
a=b
b=x
end if
if a<c then
x=a
a=c
c=x
end if
if b<c
x=b
b=c
c=x
end if
print a,b,c
end

第一个 if 的功能是比较a和b的大小,并把两者的较大的数送给a,过程是如果a小于b,那么a、b互换一下,
第二个 if的功能是比较a、b中较大的数和c比较,如果小于c,那么交换,
这样一来,通过前两个if交换一定找到一个最大送给a,
那么剩下的就简单了,比较两个小的数字b、c,看看谁大,送给b,小的给c,这样输出a,b,c的结果就是从大到小的顺序。

我们再从另一个角度,找最小开始:

cls
if b<c then
x=b
b=c
c=x
end if
if a<c then
x=a
a=c
c=x
end if
if a<b then
x=a
a=b
b=c
end if
print a,b,c
end

在这个例子中,我们通过第一个if将b、c两个数中小数送给c,再通过第二if,可以将a、b、c三个数字中的小数送给c,那么就完成了找到最小的数字的任务,最后一个if,将a、b中的小数送给b,完成比较。

排序最关键是通过一轮比较一定要一个最大或者最小(只选其一),本例子中只是三个数字的比较,那么多个数字呢?思路是一样的。经过一轮比较,找到N个数字中一个最大,放起来,不管它,那么剩下N-1个数字,再经过一轮,找到N-1个数字中的最大,放起来不再参与比较,下一步找N-2个数字的最,依次类推,最后一定能按照一个顺序排列。

总结一下分支结构的使用:

1、if……then……可以单独使用;也可以使用if……then……else……的完整结构,是否使用else主要是看if的结果和else的结果是否是完全相互排除的情况;

2、如果每一个条件只执行一个动作,那么可以一个 if……then……else……来完成,如果多个条件那么就用 if 的嵌套,如四种情况需要三个if if……then……else if……then……else if……then……else……;

3、如果一个条件需要执行多个动作,那么就必须使用if语句块结构;

使用elseif连写的写法:

if 条件1 then
语句块1
else if 条件2 then
语句块2
else
语句块3
end if

或者使用else和if分行的写法:

if 条件1 then
语句块1
else
if 条件2 then
语句块2
else
语句块3
end if
end if

和总结的1一样,if……then……可以单独使用,也可以和else全套使用;

4、分支结构还有一种结构,select case,下一节我们给大家介绍。

自我练习1:观看程序,剔除多余啰嗦的句子,并语言描述此程序的作用。

cls
input a,b
if a>b then
a=a
b=b
else
c=a
a=b
b=c
print b,a
end

 自我练习2:比较三个数的大小,并按照从小到大的顺序输出。(请注意,和我们的例3不一样的,相信大家有四种解法,将我们的例子只改一句就是两种写法,另外两种呢?)

今天就谈到这里,想看更多qbasic教程看这里

本文是 有图小站 原创,原地址 http://www.utosee.com/post/qbasic-fenzhi.html 转载请保留。





上一篇:if语句的使用
下一篇:select case语句使用方法



关于 分支语句练习 你可能还会阅读:

版权所有 有图小站 关注 电脑 网络 软件 健康 豫ICP备12023314号