【已解决】不是先声明变量吗,为什么我的计算结果都是一样的呢
本帖最后由 chuyun126 于 2010-8-10 09:48 编辑例子:
Dim $h,$s
$s=5/9*($h-32)
$h=InputBox("摄氏温度计算","请输入华氏温度")
If @error=1 Then Exit
If $h="" Then Exit
MsgBox(0,"摄氏温度计算",Round($s,2))
请问一下例子当中的$s=5/9*($h-32)为什么不能像我这样先声明呢,而要放在例子倒数第二行才对啊。 应为你把$s=5/9*($h-32)放在第二行的话,系统就会把$h的值赋为0,所以计算后$s的值就为-17.7777777777777777777777777777777777777778 放在第二行的话,系统为什么会把$h都赋值为0呢,我不太明白,我只是先声明了2个变量,之后对变量之间的关系进行说明,没给赋值0。想不通啊我。麻烦兄弟再解释一下啊。 请问你为什么非要把$s=5/9*($h-32)放在第二行呢?放在第三行有何不可?影响美观?影响阅读? 刚问群里的朋友,我明白了,因为这个是顺序结构,从上往下执行的,放在第二行的话,先执行$s=5/9*($h-32)去了,而$h还没赋值,系统就自己给它赋值0了。
不过还是要谢谢这个热心的兄弟哦。 Dim $h,$s;定义变量
$s=5/9*($h-32);计算
$h=InputBox("摄氏温度计算","请输入华氏温度");因为运算已经完成,此时输入根本不参加运算。
If @error=1 Then Exit
If $h="" Then Exit
MsgBox(0,"摄氏温度计算",Round($s,2))
可改为:Dim $h,$s
$h=InputBox("摄氏温度计算","请输入华氏温度");输入数据,赋值给$h
$s=5/9*($h-32);运算
If @error=1 Then Exit
If $h="" Then Exit
MsgBox(0,"摄氏温度计算",Round($s,2)) 谢谢热心的兄弟 回复 3# chuyun126
楼主的方法虽然是错误的,但思路很独特啊,先声明变量间的关系。
楼主能告诉我这是哪种编程语言的特性吗?先谢谢~! 呵呵。有意思。。 不好意思,我不知道是那种编程语言的特性,我没学过编程语言。 自己模拟计算一下就直达为什么。 回复 10# chuyun126
不经意中的提示,往往是通向智慧的大门。
页:
[1]