Switch Case 问题 【已解决】
本帖最后由 haodd 于 2011-3-10 22:32 编辑{:face (229):}
在论坛上见过,但是搜索不到了
想知道原因 和解决方法 谢谢$y = InputBox("输入年份","输入年份","2011")
$m = InputBox("输入月份","输入月份","5")
If $y <> "" And $m <> "" Then
MsgBox(0,"确认输入",Number($y)&"年"&Number($m)&"月")
Switch Number($m)
Case 2
If IsInt(Number($y)/4) Then
$Monday = 29
Else
$Monday = 28
EndIf
Case 11 Or 4 Or 6 Or 9
$Monday = 30
Case 1 Or 3 Or 5 Or 7 Or 8 Or 10 Or 12
$Monday = 31
Case Else
$Monday = 30
EndSwitch
EndIf
MsgBox(0,0,$Monday)当小月和大月的case更换后,效果还是一样!! 上面的内容 当月份是 1 Or 3 Or 5 Or 7 Or 8 Or 10 Or 12 返回 30
下面的内容 当月份是 11 Or 4 Or 6 Or 9 返回 31$y = InputBox("输入年份","输入年份","2011")
$m = InputBox("输入月份","输入月份","6")
If $y <> "" And $m <> "" Then
MsgBox(0,"确认输入",Number($y)&"年"&Number($m)&"月")
Switch Number($m)
Case 2
If IsInt(Number($y)/4) Then
$Monday = 29
Else
$Monday = 28
EndIf
Case 1 Or 3 Or 5 Or 7 Or 8 Or 10 Or 12
$Monday = 31
Case 11 Or 4 Or 6 Or 9
$Monday = 30
Case Else
$Monday = 30
EndSwitch
EndIf
MsgBox(0,0,$Monday) $y = InputBox("输入年份", "输入年份", "2011")
$m = InputBox("输入月份", "输入月份", "5")
If $y <> "" And $m <> "" Then
MsgBox(0, "确认输入", Number($y) & "年" & Number($m) & "月")
Switch Number($m)
Case 2
If IsInt(Number($y) / 4) Then
$Monday = 29
Else
$Monday = 28
EndIf
Case 11, 4, 6, 9
$Monday = 30
Case 1, 3, 5, 7, 8, 10, 12
$Monday = 31
Case Else
$Monday = 30
EndSwitch
EndIf
MsgBox(0, 0, $Monday) 回复 2# 水木子
这是怎么回事呢 ?
找原因 本帖最后由 水木子 于 2011-3-10 22:17 编辑
回复 3# haodd
是你要的结果吗?
我想 or 应该应用在 If XXX or XXX Then 这样的判断中吧!
而 Switch 这样的多条件运行语句 Case 如果是多值,其每个值应该直接用 “,” 隔开就行了。 楼主何必要整得哪么复杂啊,有特殊需求吗?#Include <Date.au3>
$y = InputBox("输入年份", "输入年份", "2011")
$m = InputBox("输入月份", "输入月份", "5")
If $y <> "" And $m <> "" Then
MsgBox(0, "确认输入", Number($y) & "年" & Number($m) & "月")
MsgBox(0, 0, _DateDaysInMonth($y, $m))
EndIf
回复 5# yhxhappy
我不知道有这个的函数啊真是开眼了 谢谢啊 回复 4# 水木子
对于case 的用法也了解了 谢谢 回复水木子
这是怎么回事呢 ?
找原因
haodd 发表于 2011-3-10 22:10 http://www.autoitx.com/images/common/back.gif
当然不行了,“Or”的优先级非常高。一般总会先求它的值的,并且得出的值是两个:True/False,你的代码中,象:Case 11 Or 4 Or 6 Or 9 ,实际跟:Case True完全一样。也就是会先求“11 Or 4 Or 6 Or 9”的值(为True) 回复 5# yhxhappy
有现成的函数调用固然是很方便,不过我觉得更重要的学习方法和思路,要不然这些永远都将是个谜。 学习了 多谢 楼主!!! 看来多熟悉一下函数可以少走点弯路 学习了 都是强人
页:
[1]