
4.2 输入输出语句
在事件过程或自定义过程中的语句通常应该体现以下几个方面:
(1)给已知变量赋值。
(2)根据数学模型给出正确的语句形式。
(3)输出求解结果。
在程序中,往往给要解决问题中的已知变量赋值,需要使用输入语句给已知变量赋值,称为输入操作;对求得的结果要显示,需要使用输出语句输出求得的结果,以便观察程序执行结果的正确性,称为输出操作。本节主要介绍编写程序时经常使用的输入语句和输出语句。
4.2.1 输入语句
输入语句完成为已知变量赋值的操作,通过赋值语句实现。
1.赋值语句
语句格式:
变量名=表达式
赋值语句的作用是将表达式的值赋给变量名所指变量。变量名可以是用户根据需要定义的变量,也可以是对象的属性。
例如:

2.常用赋值形式
(1)将常量赋值给变量
赋值形式:
变量名=常量
这是经常使用的赋值形式。
例如:
W = 2
'就是将常量2赋值给变量W
(2)用文本框赋值
将文本框的Text属性值赋值给变量,用文本框赋值时默认类型是字符型,如果需要数值型数据,可使用Val函数转换为数值数据。
赋值形式:
变量名=文本框名.Text
【例4-1】实现任意两个数值数据的求和运算。
【问题分析】此题目是求任意两个数的和,对求和的两个数的赋值用文本框赋值。求得的结果用文本框显示。在窗体中添加3个标签、3个文本框和2个命令按钮。图4-5给出了设计模式图和运行模式图,表4-1给出了窗体以及包含对象的属性设置。

图4-5 例4-1设计模式图和运行模式图
表4-1 例4-1中对象属性

【参考代码】

注意:Command1中的代码X和Y赋值时用Val函数的作用,如果把Val函数去掉,求得的结果会是两个数的连接运算。另外,如果不使用Val函数,还可以将X、Y的变量类型定义为数值类型的变量。
(3)用InputBox()函数赋值
InputBox函数赋值时,在运行模式下,打开赋值对话框,完成赋值,默认赋值类型为字符型数据,如果需要数值型数据,可使用Val函数转换为数值数据。
函数格式:
InputBox(提示信息[,标题][,默认值][X, Y])
其中:
·提示信息:字符串表达式,必选项。
·标题:对话框的标题,字符串表达式,可选项。
·默认值:在运行模式下,如果输入数据,则将输入数据赋值给变量;如果没有输入数据,并给出了默认值,则将默认值赋值给变量,否则将空串""赋值给变量。
·X,Y:X确定对话框与屏幕左边界的距离,Y确定对话框与屏幕上边界的距离,单位为Twip(缇)。两个参数必须全部给出,或者全部省略。
例如,执行下面的语句:
X=InputBox ("给X赋值", "输入框", 45)
弹出图4-6所示的对话框,此时,用户可以输入数据或直接单击“确定”按钮。
【例4-2】任意两个数值数据的求和运算。
【问题分析】设任意两个数分别用M和N表示,通过InputBox函数给M和N赋值,为了实现数值求和运算,用Val函数将M和N的类型转换为数值数据。在窗体中添加2个命令按钮,图4-7给出了设计模式和运行模式图,表4-2给出了对象的属性设置。

图4-6 InputBox函数赋值对话框

图4-7 例4-2设计模式图和运行模式图
表4-2 例4-2中对象属性

【参考代码】

4.2.2 输出语句
输出语句将程序实现功能时,用户所关心的数据输出,能验证程序执行的正确性。下面给出几种常用的输出方法。
1.Print方法
Print方法在窗体或图形框中输出表达式的值,在2.2.4节关于窗体的方法中,已经对Print方法作了详细介绍。在程序中,如果用图形框输出结果,要求在窗体中首先添加图形框,才能使用Print方法。
例如,例4-2中用Print方法输出两个数的和。
2.标签(Label)
标签输出时,使用标签的Caption属性。在2.2.4节,已经介绍了标签的用法,如果要用标签输出表达式的结果,首先在窗体中添加标签,然后将要输出的内容赋值给标签的Caption属性。其基本形式为:
标签对象名称.Caption =字符表达式
如果输出内容是数值型数据,可以用str函数转换为字符表达式。
例如,例4-2中求和结果如果用标签输出,相应的语句为:
Label1.Caption = Str(Val(M) + Val(N))
3.文本框(Text)
文本框不但可以用来给变量赋值,也可以输出求得的结果,输出时,使用文本框的Text属性。
例如,例4-2中求和结果如果用文本框输出,相应的语句为:
Text1.Text = Val(M) + Val(N)
4.MsgBox函数和过程
MsgBox即可以作为函数使用,也可以作为过程使用。作为函数使用时,其是语句的一个成分,此时会有返回值;作为过程使用时,此时不需要返回值,其本身就是一条语句。
MsgBox执行时,会在屏幕上显示一个对话框,图4-8给出了MsgBox函数或过程在执行时的对话框样例,根据系统内部常数提供返回值。

图4-8 MsgBox执行时的对话框样例
MsgBox函数格式:
MsgBox(提示信息[,按钮类型+图标类型+默认按钮][,标题])
MsgBox过程格式:
MsgBox提示信息[,按钮类型+图标类型+默认按钮][,标题]
其中:
(1)提示信息:字符串常量,必选项,可以为空串。
(2)按钮类型+图标类型+默认按钮:给出了MsgBox对话框中的按钮类型、图标类型和默认按钮。表4-3给出了按钮类型的值和对应的符号常量,表4-4给出了图标类型的值和对应的符号常量,表4-5给出了默认按钮的值和对应的符号常量。在MsgBox中,可以用数字或符号常量表示这3项内容。
表4-3 MsgBox按钮类型

续表

表4-4 MsgBox图标类型

表4-5 MsgBox默认按钮

MsgBox作为函数使用,会返回一个值,表4-6给出了在MsgBox函数对话框中选择按钮时,其返回的值。
表4-6 对话框中按钮的返回值

例如,在立即窗口输入下面命令,并在对话框中选择不同的按钮,输出X的值。
X = MsgBox("请选择", 3+32+0, "确认对话框")
Print X
如果在对话框中选择“是”按钮,输出的x值为6;如果选择“否”按钮,输出的x值为7;如果选择“取消”按钮,输出的x值为2。
【例4-3】根据图4-9所示的MsgBox函数对话框,给出MsgBox函数形式,函数返回值赋给Y,当在对话框中选择“重试”按钮时,Y的值是多少?

图4-9 例4-3 MsgBox函数对话框
【问题分析】通过图4-9给出的对话框,可以对照表4-3,确定按钮类型值为2,对照表4-4,确定图标类型值为64,对照表4-5,确定默认按钮为第1个按钮,提示信息是“请选择”,对话框标题是“错误提示框”,由此可以得出MsgBox函数的正确形式为:
Y = MsgBox("请选择", 2+64, "错误提示框")
当选择“重试”按钮时,根据表4-6,可知Y的值为4。
MsgBox过程不需要返回值,其本身就是一条语句。
例如,例4-3中的函数对应的过程形式为:
MsgBox "请选择", 2+64, "错误提示框"