中易网

vb计算BMI指数,显示错误,我没学过vb

答案:2  悬赏:70  
解决时间 2021-01-17 01:05
vb计算BMI指数,显示错误,我没学过vb
最佳答案
首先,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
全部回答
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中是无效的。即使编程工具中允许未经声明而使用变量,在这两个过程中的三个变量也不是等效的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
目前世界最大的航母到底有多大
e5700 cpu参数是多少?
翡翠一一江花玉 我有一个手属江花玉不知是否
这种杯叫什么
PS3的“1K”是什么意思?
给国外客户写邮件,最后的结束语类似:Best R
超市冰鲜三文鱼可以生吃吗?
求快手老方丈id
“呆在家”中的呆与“待在家”中的待有什么区
斯须九重真龙出, 一洗万古凡马空。 妙哉!妙
为什么电脑玩cf第一句不卡后边越来越卡
估算503×7时,通常把503看成______,算出它
kz极限跳跃中滚轮向下跳跃用哪个手指好点?拜
关于起源引擎或者Source SDK或者GUIStudioMDL
大象漆和华润漆哪个更适合家居用
推荐资讯
php文本编码改为utf-8,echo输出就乱码
电脑和乐彩750写真机怎么连接?
三星s7双曲面怎么强制关机
魔兽世界牧师现在版本是堆智力回魔还是堆精神
眼睛看光源有很多光线有重影是怎么回事
给自己买了意外险工作时手指断了,保险公司会
请问唐哀帝中的哀帝是后人起的吗?
诺基亚N97和N97mini怎么样
寻找守护猫娘绯鞠图片
哪句歇后语的后半句是后来者居上
摩托罗拉Z突然黑屏,并且接不了电话
如何得到高达seed destinyGBA的所有机体
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?