vb计算BMI指数,显示错误,我没学过vb
答案:2 悬赏:70
解决时间 2021-01-17 01:05
- 提问者网友:浮克旳回音
- 2021-01-16 00:19
vb计算BMI指数,显示错误,我没学过vb
最佳答案
- 二级知识专家网友:不甚了了
- 2021-01-16 01:14
首先,VB代码必须逐行书写,当然你贴出的格式可能会乱,这个不提了。
其次,Option1.Value,没有这个控件,所以这个判断不需要。
再者,18.5 <= c <= 24.9 ,这个区间判断不对,应该是18.5 <= c and c<= 24.9。
18.5 <= c <= 24.9 这个写法也会有结果,什么意思呢? 首先执行第一个<=运算,返回一个false或者True,然后再执行第二个<=,这个时候是一个Boolean值与后面的24.9数值进行大小比较,也返回一个Boolean值(false or True)。这个挺有意思,boolean值和数值进行大小比较,经过测试,是可以比较的。false=-1,True=1。
这个就不管了,反正上面写法不对。
对输入文本框应该有一个有效性判断,比如判断都是数字。
最后,dim申明的变量应该在一个过程(函数)中。
依据以上几点,修正代码如下:
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
If IsNumeric(Text1.Text) And IsNumeric(Text2.Text) Then
a = Val(Text1)
b = Val(Text2)
c = b / (a * a)
If 18.5 <= c And c <= 24.9 Then Text3.Text = "您的身材很标准哦!" Else: Text3.Text = "您还需继续努力哦!"
End If
End Sub
其次,Option1.Value,没有这个控件,所以这个判断不需要。
再者,18.5 <= c <= 24.9 ,这个区间判断不对,应该是18.5 <= c and c<= 24.9。
18.5 <= c <= 24.9 这个写法也会有结果,什么意思呢? 首先执行第一个<=运算,返回一个false或者True,然后再执行第二个<=,这个时候是一个Boolean值与后面的24.9数值进行大小比较,也返回一个Boolean值(false or True)。这个挺有意思,boolean值和数值进行大小比较,经过测试,是可以比较的。false=-1,True=1。
这个就不管了,反正上面写法不对。
对输入文本框应该有一个有效性判断,比如判断都是数字。
最后,dim申明的变量应该在一个过程(函数)中。
依据以上几点,修正代码如下:
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
If IsNumeric(Text1.Text) And IsNumeric(Text2.Text) Then
a = Val(Text1)
b = Val(Text2)
c = b / (a * a)
If 18.5 <= c And c <= 24.9 Then Text3.Text = "您的身材很标准哦!" Else: Text3.Text = "您还需继续努力哦!"
End If
End Sub
全部回答
- 1楼网友:孤独入客枕
- 2021-01-16 01:45
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
Dim c As Single
a = Val(Text1)
b = Val(Text2)
'If Option1.Value Then
c = b / (a * a)
If c >= 18.5 And c <= 24.9 Then 'If 18.5 <= c <= 24.9 Then
Text3.Text = "您的身材很标准哦!"
Else
Text3.Text = "您还需继续努力哦!"
End If
End Sub
其它代码不需要。
原来代码的错误:
1、窗体界面上没有Option1,运行代码时找不到它,一定要报错。
2、18.5 <= c <= 24.9,这种写法,在VB中是不可以的,或者会被编译程序理解为别的意思。
3、在每个过程内部声明的变量都是局部变量,只能在该过程中有效。原来代码中在Form_Load过程中声明了a、b、c三个变量,在按钮的Click中是无效的。即使编程工具中允许未经声明而使用变量,在这两个过程中的三个变量也不是等效的。
Dim a As Single
Dim b As Single
Dim c As Single
a = Val(Text1)
b = Val(Text2)
'If Option1.Value Then
c = b / (a * a)
If c >= 18.5 And c <= 24.9 Then 'If 18.5 <= c <= 24.9 Then
Text3.Text = "您的身材很标准哦!"
Else
Text3.Text = "您还需继续努力哦!"
End If
End Sub
其它代码不需要。
原来代码的错误:
1、窗体界面上没有Option1,运行代码时找不到它,一定要报错。
2、18.5 <= c <= 24.9,这种写法,在VB中是不可以的,或者会被编译程序理解为别的意思。
3、在每个过程内部声明的变量都是局部变量,只能在该过程中有效。原来代码中在Form_Load过程中声明了a、b、c三个变量,在按钮的Click中是无效的。即使编程工具中允许未经声明而使用变量,在这两个过程中的三个变量也不是等效的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯