关于select.....case语句的问题
本帖最后由 3588819 于 2011-1-28 20:01 编辑刚学习au3没几天,今天照着教程练习,遇到点问题。以下是源码:Dim $a=InputBox("学生成绩计算","请输入学生成绩","请输入正确的成绩(100分制)")
If @error =1 Then Exit
If $a ="" Then MsgBox(0+16,"错误","请输入成绩")
Select
Case $a>90 And $a<=100
MsgBox(0,"成绩判断","优秀!")
Case $a>80 And $a<=90
MsgBox(0,"成绩判断","良好!")
Case $a>=60 And $a<=80
MsgBox(0,"成绩判断","及格!")
Case $a>=0 And $a<60
MsgBox(0,"成绩判断","不及格")
Case Else
MsgBox(0+16,"错误","请输入一个介于0~100的分数!")
EndSelect问题:
为什么在输入框里打入汉字,再点确定的时候,弹出框是“不及格”呢??按说他应该弹出“请输入一个介于0~100的分数!”才对啊!难道它把汉字当做0到60的数字处理了?请高手指教! 改下标题。 各位帮忙来看看啊!{:face (229):} 看啥呀?程序没问题。你的逻辑有问题。 回复 4# ghl781258
请您说明白些
按理说 汉字 不属于0到60 那为什么要弹出不及格的框呢? 什么叫按理说,你试试看
msgbox('','','不及格'<60)
会返回什么?
编程没那么多按理说,如果非要按理说,按理说你这个根本就是基础没打好,按自己的想法想当然 注意变量类型。先用StringIsInt或者StringIsFloat判断输入的是否是纯数值。判断时,用Number函数将输入的字符转换成数字类型。 While 1
Dim $a=InputBox("学生成绩计算","请输入学生成绩","请输入正确的成绩(100分制)")
If @error =1 Then Exit
If $a ="" Then MsgBox(0+16,"错误","请输入成绩")
If StringIsFloat ($a) Or StringIsInt ($a) Then
Select
Case $a>90 And $a<=100
MsgBox(0,"成绩判断","优秀!")
Exit
Case $a>80 And $a<=90
MsgBox(0,"成绩判断","良好!")
Exit
Case $a>=60 And $a<=80
MsgBox(0,"成绩判断","及格!")
Exit
Case $a>=0 And $a<60
MsgBox(0,"成绩判断","不及格")
Exit
Case Else
MsgBox(0+16,"错误","请输入一个介于0~100的分数!")
EndSelect
Else
MsgBox(0+16,"错误","请输入一个分数!")
EndIf
WEnd 呵呵,这道题让人想起了著名的表驱动法. 回复 9# ceoguang
表驱动法很好很强大.
#include <array.au3>
dim $array=
dim $str=["不及格","及格","良好","优秀"]
while 1
Dim $a=InputBox("学生成绩计算","请输入学生成绩","请输入正确的成绩(100分制)")
If @error =1 Then Exit
If $a ="" Then MsgBox(0+16,"错误","请输入成绩")
for $i=0 to 2
if $a<$array[$i] then ExitLoop
Next
msgbox(0,$i,$str[$i])
wend 回复 10# 3mile
很好,很强大条条大路通罗马,终于看到用二维数组做的,学习一下。 回复 11# jackey009
{:face (394):}是二维数组的定义变了,还是学的时候就错了?什么地方出二维数组了? 回复jackey009
是二维数组的定义变了,还是学的时候就错了?什么地方出二维数组 ...
netegg 发表于 2011-2-11 14:50 http://www.autoitx.com/images/common/back.gif
同感!
页:
[1]