有图小站

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

当前位置: 首页 > 程序设计 > if语句的使用

if语句的使用

if语句是大型程序使用最多的结构,不管你编写的是应用程序还是脚本语言,经常会遇到判断语句。

qbasic中的if语句和其他的编程语言比较一致,基本上都是 if……then……else……结构。其中if……then……是必须的,其中if后面的条件可以使用and、or 的多条件结构,if语句和else后面也可以跟随if语句的嵌套。例如:

例如典型的托运计费问题

当货物重量小于20公斤的时候,收费5元,大于20公斤小于100公斤的时候超出20公斤的部分按每0.2元每公斤计费,如果超出100公斤的时候,超出的部分按照每公斤0.15元计算。编写程序,自动计算货物的运费。

分析:货物的费用分为三个区间,小于20公斤,20-100公斤,100公斤以上。需要使用判断语句来分情况处理。

初写:

if x<=20 then y=5
if x<=100 then y=5+(x-20)*0.2
if x>100 then y=5+(100-20)*0.2+(x-100)*0.15

如果完善一下,加上输入重量 x 的语句和输出结果 y 的语句,程序可以变为:

cls
input "shu ru zhong liang";x
if x<=20 then y=5
if x<=100 then y=5+(x-20)*0.2
if x>100 then y=5+(100-20)*0.2+(x-100)*0.15
print "tuo yun fei shi:";y;
end

注意:
1、上例中的input语句是输入语句,其中英文引号部分可有可无,有的好处是,可以提示我们“输入重量”的数字,其中引号和X之间需要用英文的分号分隔(这一点和print语句是一样的);
2、上例中我在第二个if没有使用双条件语句 if x>20 and x<100 想想为什么?(使用双条件的结果是一样的)

上例是使用纯if……then……结构完成的,如果使用if……then……else……全套结构有两种写法

cls
input "shu ru zhong liang";x
if x<=20 then y=5 else if x<=100 then y=5+(x-20)*0.2 else y=5+(100-20)*0.2+(x-100)*0.15
print "tuo yun fei shi:";y;
end

第二种写法

 

cls
input "shu ru zhong liang";x
if x<=20 then
y=5
else
if x<=100 then
y=5+(x-20)*0.2
else
 y=5+(100-20)*0.2+(x-100)*0.15
end if
end if
print "tuo yun fei shi:";y;
end

这种方法还有一种变异:

cls
input "shu ru zhong liang";x
if x<=20 then
y=5
elseif x<=100 then
y=5+(x-20)*0.2
else
 y=5+(100-20)*0.2+(x-100)*0.15
end if
print "tuo yun fei shi:";y;
end

我们首先来看第一种写法,这种写法最简单,单行完成多个条件的嵌套,适合与then之后执行的语句只有一个的时候,如果then之后要执行很多的语句,这种单行结构就不太适合了,需要第二种结构。第二种结构可以使用多个语句,例如在then的后面可以写很多语句,每条语句独立成行并在else之上即可。我们以后会看到越来越多的这样的例子,大型程序这样的多语句结构是少不了的。

第二种结构的书写过程中有多少个 if开头,最后要有几个end if作对应。而变异结构其实也是一种简化结构,将后一个if和前一个else连写在一起变成 而elseif ,这样一来,真个结构当中只有一个if开头,虽然包含有elseif ,但是最后只需要一个end if做结尾。因为整个语句中只有一个if……then……else…… 而其他的都是 elseif……then……结构。

其实这道题还有很多中写法,其他的写法不具有代表性,并且可能让大家理解有困难,我就不罗列了。

给大家出一道题:

计算两个数的差,判断这个差是正数,还是零,还是负数。

参考思路:

cls
input "a,b";a,b
c=a-b
if c<0 then print "+,zheng shu" else if c=0 then print "0,a=b" else print "-,a<b"
end

请大家将这个结果变为if……then和else……分行写的结构(可以参考上面的例子)。此题中提示输入 a,b 的时候,我们一定要将两个数字以逗号分开,否则会有错误提示“Redo from start”。

我们再来举一个比较字符在计算机中ASCII码值大小的问题。

比较阿拉伯数字、小写字母、大写字母的ASCII码值的大小。

这道题大家也许没有思路,因为大家还不知道怎么比较ASCII码的大小,我试写一句相信大家都会模仿了。首先我们知道阿拉伯数字、小写字母、大写字母的开头分别是0、a、A,那么我们可以比较这三个领头的字母,当然,你也可以从各自字母中随意抽取。

参考:

cls
if "a"<"A" then print "a<A" else print "a>A"
if "a"<"0" then print "a<0" else print "a>0"
if "0"<"A" then print "0<A" else print "0>A"
end

简单介绍一下,当我们将两个加引号的字符串比较的时候,就不是比较变量而是比较字符串的ASCII码值了,我们的print语句中的a、A、0是表示小写字母、大写字母和阿拉伯数字的,这些输出的内容大家可以自定义,只要能表达适当的意思即可。

今天的if判断结构就说这么多,我们在以后的程序例子中会经常遇到这些结构的使用。想看更多qbasic教程看这里

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





上一篇:赋值语句与变量
下一篇:分支语句练习



关于 if语句的使用 你可能还会阅读:

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