lchl0588 发表于 2010-1-24 20:15:34

试问这段代码,为何点“确定,取消及输入字母“都不报错呢?

本帖最后由 lchl0588 于 2010-1-26 12:51 编辑

首先看下代码:#include<array.au3>
Const $n=InputBox("","")
dim $a
if @error=1 Then Exit
if $n=Asc($a) Then Exit
Dim $i,$randomnumarray[$n]
        For $i=1 To $n-1
                $randomnumarray[$i]=Random(1,10,1)
        Next
        _ArrayDisplay($randomnumarray,"随机数组")呵呵,无论你输入几位数,只要你的CPU足够猛,就能计算出来!!!当然也包括小数点!!!!

试问下:为什么点“确定”“取消”还有输入字母或特符号等等(这一切都不属于数值),都不报错呢????

呵呵,这段代码是偶学习 一两数组时,进行不段完善的结果!!!

如果直接点“确定”“取消” 会使行if @error=1 Then Exit
当输入数字时,点“确定”会显示结果!!
当输入字母加数字或纯字母、特殊符号,点“确定” ,不会报错!!!疑问就在这里!!!,为什么不报呢!!!

if $n=Asc($a) Then Exit

刚测试程序执行到这里就退出了!
$n=Asc($a)有问题,成了熟值语句了!
bill-0970 发表于 2010-1-25 21:51 http://www.autoitx.com/images/common/back.gif
呵呵,有点明白了!!
当输入字母加数字或纯字母、特殊符号,点“确定” ,不会报错!!!疑问就在这里!!!,为什么不报呢!!! 原因在于ASC这个语法吧!$a呢!!成了模糊的变量!! 要想真正明白是什么回事,还得了解Asc($a)语法!

3mile 发表于 2010-1-24 20:32:34

代码并不完整啊

lchl0588 发表于 2010-1-25 21:23:54

等达人来解释下代码真的不完整吗?

bill-0970 发表于 2010-1-25 21:51:41

if $n=Asc($a) Then Exit

刚测试程序执行到这里就退出了!
$n=Asc($a)有问题,成了熟值语句了!

kn007 发表于 2010-1-26 07:52:43

不知楼主说什么,我只知道你一个地方错了
#include<array.au3>
Const $n=InputBox("","")
if @error=1 Then Exit
dim $a
if $n=Asc($a) Then Exit
Dim $i,$randomnumarray[$n]
      For $i=1 To $n-1
                $randomnumarray[$i]=Random(1,10,1)
      Next
      _ArrayDisplay($randomnumarray,"随机数组")

gapkiller 发表于 2010-1-26 09:22:27

if $n=Asc($a) Then Exit

$a还未赋值哩...

lchl0588 发表于 2010-1-26 11:51:20

回复 6# gapkiller
如果$a赋值的话,结果会变成另外一种。唯一不明白的是为什么单单这一句能判断出非数字以外的错误呢!
页: [1]
查看完整版本: 试问这段代码,为何点“确定,取消及输入字母“都不报错呢?