VBScript新手求助:如何优化简易Yes/No游戏代码?
优化你的VBScript Yes/No游戏代码
你的核心问题是重复判断大小写导致嵌套过多,下面是简化后的优化方案,同时保持功能一致:
优化后的代码
' 把输入转成大写,统一判断逻辑 If UCase(a) = "NO" Then MsgBox "Bye" Else b = InputBox("What is your name?") c = InputBox("Isn't that a good name?(Yes/No)") ' 同样用大写转换处理第二个输入 If UCase(c) = "NO" Then MsgBox "That's not nice." Else MsgBox "It's good that you like it, afterall you are stuck with that name." End If End If
关键优化点
- 统一大小写处理:用
UCase()函数把用户输入转成大写,不管用户输入No、no还是NO,都只需要判断一次是否等于"NO",彻底消除重复的大小写判断嵌套。你也可以用LCase()转成小写,判断是否等于"no",效果一样。 - 扁平化代码结构:去掉了嵌套在
Else里的多余If语句,现在代码层级更少,读起来更清晰,结尾的End If数量也大幅减少。 - 删除冗余变量:原来的
p、p1、d、d1这些变量完全没用,直接调用MsgBox即可,没必要赋值给变量。
如果想进一步完善,可以补充处理用户点击输入框取消按钮的情况(此时InputBox会返回空字符串),比如:
If UCase(a) = "NO" Then MsgBox "Bye" Else b = InputBox("What is your name?") ' 判断用户是否取消输入名字 If b <> "" Then c = InputBox("Isn't that a good name?(Yes/No)") If UCase(c) = "NO" Then MsgBox "That's not nice." ElseIf c <> "" Then MsgBox "It's good that you like it, afterall you are stuck with that name." End If End If End If
内容的提问来源于stack exchange,提问作者gsshunter
相关产品推荐
相关产品推荐

