4.3.2  单行条件语句

4.3.2 单行条件语句

单行条件语句比较简单,语法格式如下。

978-7-111-49659-5-Chapter04-60.jpg

说明:

1)<条件>可以是关系表达式,也可以是逻辑表达式或者数值表达式。如果用数值表达式作为判断条件,则当其值为0时条件为假,非0时为真。

2)当条件为真时,执行Then分支中的<语句1>,否则执行Else分支中的<语句2>。

3)如果没有Else子句,则<语句1>为必要部分。当条件为真时,执行<语句1>;当条件为假时,不进行任何操作。

4)如果没有Then子句,而Else子句不为空,那么,当条件为真时,不进行任何操作;当条件为假时,执行Else分支。

5)书写时,所有关键字、语句都必须在一行中书写完毕。如果每个分支中有多条语句,则各语句之间要用冒号“:”分开。

下面是一些单行条件语句的例子。

978-7-111-49659-5-Chapter04-61.jpg

如果a大于b,则输出a,否则输出b。

978-7-111-49659-5-Chapter04-62.jpg

如果a大于0,则输出a;如果a小于或等于0,则不执行任何语句。

978-7-111-49659-5-Chapter04-63.jpg

如果a大于b并且b大于c,则输出a、b、c;否则不执行任何语句。

978-7-111-49659-5-Chapter04-64.jpg

如果a小于b,则交换a、b中的值。这是经典的交换两个变量值的方法,应熟练掌握。

【例4-6】输入数值x的值,输出其绝对值。

按“三步法”原则分析如下。

978-7-111-49659-5-Chapter04-65.jpg做什么

1)用户输入x值:所以应该有输入语句,这里用文本框实现。

2)求绝对值:所以应该有“计算”按钮。

3)一个用于说明文本框的标签。

978-7-111-49659-5-Chapter04-66.jpg怎么做

步骤描述如下:

1)读取用户输入的数据到变量x中。

2)判断变量x值的正负,如果为正数,则执行第3)步;如果为负数,则执行第4)步。

3)输出x,然后转到第5)步。

4)输出-x,然后转到第5)步。

5)根据程序功能任务已经完成,程序结束。

978-7-111-49659-5-Chapter04-67.jpg实现

1)获取数据:

978-7-111-49659-5-Chapter04-68.jpg

2)从步骤描述的逻辑来看,第3)、4)步是第2)步判断的两种情况,其中肯定有一个被执行,并且由于第3)、4)步是互斥的,因此只能有一个被执行。它们谁能够执行,取决于第2)步的判断结果。所以第2)、3)、4)三个步骤实际上可以用一个判断语句实现:

978-7-111-49659-5-Chapter04-69.jpg

3)程序功能已经执行完毕,所以就不用编写其他代码了,结束事件过程即可。

实现效果如图4-21所示。

为了使界面更友好,可以把语句

978-7-111-49659-5-Chapter04-70.jpg

改为

978-7-111-49659-5-Chapter04-71.jpg

实现效果如图4-22所示。

但是这样写的If语句比较长,并且不难发现,这两条输出语句就差一个负号,所以可以再进行修改。这次修改“怎么做”和“实现”两步,修改如下。

978-7-111-49659-5-Chapter04-72.jpg怎么做

步骤描述如下。

978-7-111-49659-5-Chapter04-73.jpg

图4-21 计算绝对值

978-7-111-49659-5-Chapter04-74.jpg

图4-22 修改Msgbox

1)读取用户输入的数据到变量x中。

2)判断变量x值的正负,如果为正数,则执行第3)步;如果为负数,则执行第4)步。

3)把x值保存到y中,然后转到第5)步。

4)把-x值保存到y中,然后转到第5)步。

5)输出y。

从这里可以看出,第3)、4)步并没有输出x的绝对值,而是把要输出的内容存储到变量y中,无论执行哪个分支,y都会被赋值,只是内容不同。等分支执行完毕后,执行第5)步,输出y。

978-7-111-49659-5-Chapter04-75.jpg实现

1)获取数据:

978-7-111-49659-5-Chapter04-76.jpg

2)判断语句:

978-7-111-49659-5-Chapter04-77.jpg

3)输出:

978-7-111-49659-5-Chapter04-78.jpg

修改后的程序代码为:

978-7-111-49659-5-Chapter04-79.jpg

978-7-111-49659-5-Chapter04-80.jpg

这种方法比直接输出更具通用性,输出语句一般放在程序的最后执行,而且这种写法使代码更为简化。

【例4-7】有以下函数:

978-7-111-49659-5-Chapter04-81.jpg

要求输入x的值,求出y值并输出。

按“三步法”原则分析如下。

978-7-111-49659-5-Chapter04-82.jpg做什么

1)输入一个数,所以要有一个文本框。

2)一个计算按钮,标题为“计算”。

3)一个用于说明文本框的标签。

978-7-111-49659-5-Chapter04-83.jpg怎么做

步骤描述如下:

1)读取文本框中的数据到变量x中。

2)判断:如果x>0,则y=1;如果x=0,则y=0,否则y=-1。

3)输出y。

978-7-111-49659-5-Chapter04-84.jpg实现

1)读取数据:

978-7-111-49659-5-Chapter04-85.jpg

2)这里有两次判断,所以需要两条判断语句。那么这两次判断是什么关系呢?首先来分析一下:

y=1是x>0成立的情况,而另外的两种情况都属于x>0不成立的情况,都属于x>0的Else分支。所以,需要在Else分支中再次进行判断,语句为

978-7-111-49659-5-Chapter04-86.jpg

“If x=0 Then y=0 Else y=-1”是一条完整的If语句,但是它也是x>0条件的Else分支语句,这就是If语句的嵌套。

3)输出:

978-7-111-49659-5-Chapter04-87.jpg

完整代码如下。

978-7-111-49659-5-Chapter04-88.jpg

运行结果如图4-23所示。这里用到了If语句的嵌套,无论语句多长都要作为一条语句来写,不要换行。如果要换行,一定用续行符“_”连接,写法如下:

978-7-111-49659-5-Chapter04-89.jpg

978-7-111-49659-5-Chapter04-90.jpg

图4-23 计算y值