关于Switch ... EndSwitch语句(锁贴)
本帖最后由 old_snoopy 于 2013-9-20 22:33 编辑如下例1和例2应该功能一样,当例2输入0-59之间的数报错.求大侠指点(<=)
例1.
Dim $s
$s=InputBox("","请输入学生成绩:",'')
Switch $s
Case 89<$s And $s<=100
MsgBox(0,"学生成绩","优秀!")
Case 79<$s And $s<=89
MsgBox(0,"学生成绩","良好!")
Case 59<$s And $s<=79
MsgBox(0,"学生成绩","及格!")
Case 0<$s And $s<=59
MsgBox(0,"学生成绩","不及格!")
Case $s=0
MsgBox(0,"学生成绩","不及格!")
Case Else
MsgBox(0+16,"学生成绩","学生成绩输入错误!")
EndSwitch
例2.
Dim $s
$s=InputBox("","请输入学生成绩:",'')
Switch $s
Case 89<$s And $s<=100
MsgBox(0,"学生成绩","优秀!")
Case 79<$s And $s<=89
MsgBox(0,"学生成绩","良好!")
Case 59<$s And $s<=79
MsgBox(0,"学生成绩","及格!")
Case 0=<$s And $s<=59
MsgBox(0,"学生成绩","不及格!")
Case Else
MsgBox(0+16,"学生成绩","学生成绩输入错误!")
EndSwitch 回复 1# old_snoopy
Switch ....不是这样用的. 应该这样:Dim $s
$s=InputBox("","请输入学生成绩:",'')
Switch $s
Case 90 To 100
MsgBox(0,"学生成绩","优秀!")
Case 80 To 89
MsgBox(0,"学生成绩","良好!")
Case 60 To 79
MsgBox(0,"学生成绩","及格!")
Case 0 To 59
MsgBox(0,"学生成绩","不及格!")
Case Else
MsgBox(0+16,"学生成绩","学生成绩输入错误!")
EndSwitch 回复 2# user3000
我把原程序修改了一下,运行没问题!这程序所用语法与帮助文档不一致.是帮助文档简化了?
Dim $s
$s=InputBox("","请输入学生成绩:",'',' m')
If @error=1 Then
MsgBox(0+16+262144,"学生成绩","学生成绩输入错误!")
Exit
EndIf
Switch $s
Case $s>89 and $s<=100
MsgBox(262144,"学生成绩","优秀!")
Case $s>79 and $s<=89
MsgBox(262144,"学生成绩","良好!")
Case $s>59 and $s<=79
MsgBox(262144,"学生成绩","及格!")
Case $s>=0 and $s<=59
MsgBox(262144,"学生成绩","不及格!")
Case Else
MsgBox(0+16+262144,"学生成绩","学生成绩输入错误!")
EndSwitch 回复 3# old_snoopy
If @error=1 Then
MsgBox(0+16+262144,"学生成绩","学生成绩输入错误!")
Exit
EndIf
这段应该可以删掉,毕竟下面已经有判断了...
没发现与2楼有什么不同的,>89且<=100意思跟90-100之间有什么区别?
另外楼主的0=<$S这样的写法不对吧,这样写的意思就是判断0,而非判断$S了...
新手表示:我啥也不知道啊啥也没说过... 本帖最后由 user3000 于 2013-9-20 20:46 编辑
回复 3# old_snoopy
你这样用当然也是对的,我2楼说的不是这样用, 潜在意思是你的代码过于繁琐了.
编程的代码应该尽可能简洁明了地实现功能才是.
还有编辑的标题,有个错别字, 应该是 '已解决', 要用已经的那个 "已" 本帖最后由 old_snoopy 于 2013-9-20 22:34 编辑
回复 5# user3000
搞错了
页:
[1]