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

Small Basic猜数字程序无法运行,报错“Expected a condition here”求助

Small Basic猜数字程序错误排查与修复

核心错误点及解决方法

  1. 语法错误触发"Expected a condition here"
    你的ElseIf txtCels <1 or >10 Then代码逻辑不完整,Small Basic要求逻辑运算符(Or/And)两侧必须是完整的条件表达式,不能省略左边的变量。正确写法应为:

    ElseIf txtCels < 1 Or txtCels > 10 Then
    
  2. 未正确获取输入框内容
    FCControls.GetText(txtCels)仅调用了获取文本的方法,但未将返回值赋值给txtCels变量,导致后续判断时txtCels无有效输入值。需修改为:

    txtCels = FCControls.GetText(txtCels)
    
  3. 控件文本设置方式错误
    直接使用lblanswer = "..."无法修改标签的显示内容,Small Basic中必须通过FCControls.SetText()方法来设置控件文本,例如:

    FCControls.SetText(lblanswer, "That's correct the Madame would like to hire you!")
    
  4. 逻辑顺序不合理
    当前代码先判断是否猜对随机数,再检查输入范围,会导致无效输入被直接判定为错误猜测。应先验证输入合法性,再判断是否猜对。

  5. 随机数生成时机错误
    每次点击按钮都重新生成随机数,用户每次猜测的目标数字都会变化,不符合猜数字游戏的逻辑。需将随机数生成放在Sub外部,仅初始化一次。


修正后的完整代码

' 初始化随机数,仅生成一次
randNum = Math.GetRandomNumber(10)

Sub btnguess_Click
  ' 获取输入框文本并转为数字类型
  inputContent = FCControls.GetText(txtCels)
  txtCels = Text.ConvertToNumber(inputContent)
  
  ' 先判断输入是否在合法范围内
  If txtCels < 1 Or txtCels > 10 Then
    FCControls.SetText(lblanswer, "Please enter number between 1 and 10")
  ' 再判断是否猜对数字
  ElseIf txtCels = randNum Then
    FCControls.SetText(lblanswer, "That's correct the Madame would like to hire you!")
  ' 最后处理猜错的情况
  Else
    FCControls.SetText(lblanswer, "That's incorrect the Madame asks you to leave.")
  EndIf
EndSub

内容的提问来源于stack exchange,提问作者Don Beedrill

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:31:16