找回密码
 加入
搜索
查看: 3991|回复: 11

[AU3基础] 【已解决】不是先声明变量吗,为什么我的计算结果都是一样的呢

  [复制链接]
发表于 2010-8-5 08:57:48 | 显示全部楼层 |阅读模式
本帖最后由 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)为什么不能像我这样先声明呢,而要放在例子倒数第二行才对啊。
发表于 2010-8-5 09:26:29 | 显示全部楼层
应为你把$s=5/9*($h-32)放在第二行的话,系统就会把$h的值赋为0,所以计算后$s的值就为-17.7777777777777777777777777777777777777778
 楼主| 发表于 2010-8-5 09:36:39 | 显示全部楼层
放在第二行的话,系统为什么会把$h都赋值为0呢,我不太明白,我只是先声明了2个变量,之后对变量之间的关系进行说明,没给赋值0。想不通啊我。麻烦兄弟再解释一下啊。
发表于 2010-8-5 09:48:48 | 显示全部楼层
请问你为什么非要把$s=5/9*($h-32)放在第二行呢?放在第三行有何不可?影响美观?影响阅读?

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-8-5 09:56:52 | 显示全部楼层
刚问群里的朋友,我明白了,因为这个是顺序结构,从上往下执行的,放在第二行的话,先执行$s=5/9*($h-32)去了,而$h还没赋值,系统就自己给它赋值0了。
不过还是要谢谢这个热心的兄弟哦。
发表于 2010-8-5 09:59:23 | 显示全部楼层
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))

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-8-5 10:08:04 | 显示全部楼层
谢谢热心的兄弟
发表于 2010-8-5 14:02:21 | 显示全部楼层
回复 3# chuyun126

楼主的方法虽然是错误的,但思路很独特啊,先声明变量间的关系。
楼主能告诉我这是哪种编程语言的特性吗?先谢谢~!
发表于 2010-8-5 14:09:58 | 显示全部楼层
呵呵。有意思。。
 楼主| 发表于 2010-8-6 10:14:03 | 显示全部楼层
不好意思,我不知道是那种编程语言的特性,我没学过编程语言。
发表于 2010-8-6 19:17:34 | 显示全部楼层
自己模拟计算一下就直达为什么。
发表于 2010-8-6 23:39:31 | 显示全部楼层
回复 10# chuyun126
不经意中的提示,往往是通向智慧的大门。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-9 03:22 , Processed in 0.085460 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表