You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:30:55