If...Then...Else 判断语句请教(已解决)
本帖最后由 leilei123 于 2012-9-13 14:59 编辑原实例代码
Dim $s
$s=InputBox("学生成绩","请输入学生的成绩")
If @error=1 Or $s="" Then
Exit
EndIf
If $s>=0 And $s<=100 Then
If $s>90 Then
MsgBox(0,"学生成绩","优秀!")
ElseIf $s>80 Then
msgBox(0,"学生成绩","良好!")
ElseIf $s>=60 Then
msgBox(0,"学生成绩","及格!")
Else
msgBox(0,"学生成绩","不及格!")
EndIf
Else
MsgBox(0+16,"学生成绩","学生成绩输入错误!")
EndIf
不明白的地方
ElseIf $s>80 Then
msgBox(0,"学生成绩","良好!")
ElseIf $s>=60 Then
msgBox(0,"学生成绩","及格!")
为啥不能换行写成
Else
If $s>80 Then
msgBox(0,"学生成绩","良好!")
Else
If $s>=60 Then
msgBox(0,"学生成绩","及格!")
我看有的实例是分开写的哈,啥时候elseif需写一起,啥时候可以换行分开写? 回复 1# leilei123
怎么可能不行,后面的 endif 跟齐了就行了,几层跟几个 回复 2# netegg
不太明白,就把原实例的elseif,换行书写就得加endif吗?能给详细解释下吗。谢谢了!! 本帖最后由 netegg 于 2012-9-13 11:42 编辑
if ...then
......
else
if ..... then
.....
else
if ...... then
......
endif
endif
endif if ...then
......
if ..... then
.....
if ...... then
......
EndIf
Else
......
EndIf这样也可以啊 本帖最后由 netegg 于 2012-9-13 12:16 编辑
回复 5# yunnl
确定这个和楼主的要求效果相同?不过,也是,看lz如何安排自己的条件了 回复 4# netegg
非常感谢,还有一点明白,原实例ElseIf一起书写
If $s>90 Then
MsgBox(0,"学生成绩","优秀!")
ElseIf $s>80 Then
msgBox(0,"学生成绩","良好!")
ElseIf $s>=60 Then
msgBox(0,"学生成绩","及格!")
Else
msgBox(0,"学生成绩","不及格!")
EndIf
这一段后边只跟一个endif就可以,把else,if换行写,endif就得多个?为啥哈 elseif 是一个关键字和 if 是同级的
else
if 是两个关键字,且是嵌套关系,是上层 if 里的一个分支,必须标识出判断结束,即endif IF
ElseIF
ElseIF
Endif
串联关系
IF
ELSE
IF
ENDIF
IF
ENDIF
Endif
内部的IF是并列关系 回复 9# Qokelate
有点出入吧,我怎么感觉
if
elseif
elseif
endif
是并列关系
if
if
endif
else
if
endif
endif
才是串联关系呀 本帖最后由 Qokelate 于 2012-9-13 13:24 编辑
回复 10# netegg
IF
ELSEIF
ELSEIF
ELSEIF
ENDIF
等价于
IF
ELSE
IF
ELSE
IF
ELSE
ENDIF
ENDIF
ENDIF
而对于
IF ;1
ELSE
IF ;2
ENDIF
IF ;3
ENDIF
ENDIF
而言,执行2的判断必定也会执行3的判断,因此说它们是并列的,而ELSEIF只是对上一次判断结果的筛选 本帖最后由 Qokelate 于 2012-9-13 13:41 编辑
再想了想,觉得怎样说都不能成立,不同用法产生的关系不同,不能单纯的说怎样怎样的关系,只能是谁包含在谁之中,谁对谁的结果进行筛选
PS:我认为ELSEIF只是为了代码更美观些而已(可以少写些ENDIF) 本帖最后由 netegg 于 2012-9-13 14:14 编辑
local $x =3, $y = 1
if $x = 0 then
msgbox(0,0,$x)
else
if $y = 1 then
msgbox(0,0,$y-1)
endif
endif
local $x=3, $y = 1
if $x = 0 then
msgbox(0,0,$x)
elseif $x= 2 then
msgbox(0,0,$y - 1)
endif 只要明白了最简单的IF...ELSE....ENDIF,对嵌套有ELSEIF的理解也就不难了。
这种条件语句是按层级关系,由外向内、由上向下的顺序判断条件成立与否,成立就执行之后的语句,之后跳到结尾。IF、ELSEIF只不过是一个条件开关。 谢谢大家的帮助~理解了不少
页:
[1]
2