Small Basic猜数字程序无法运行,报错“Expected a condition here”求助
Small Basic猜数字程序错误排查与修复
核心错误点及解决方法
语法错误触发"Expected a condition here"
你的ElseIf txtCels <1 or >10 Then代码逻辑不完整,Small Basic要求逻辑运算符(Or/And)两侧必须是完整的条件表达式,不能省略左边的变量。正确写法应为:ElseIf txtCels < 1 Or txtCels > 10 Then未正确获取输入框内容
FCControls.GetText(txtCels)仅调用了获取文本的方法,但未将返回值赋值给txtCels变量,导致后续判断时txtCels无有效输入值。需修改为:txtCels = FCControls.GetText(txtCels)控件文本设置方式错误
直接使用lblanswer = "..."无法修改标签的显示内容,Small Basic中必须通过FCControls.SetText()方法来设置控件文本,例如:FCControls.SetText(lblanswer, "That's correct the Madame would like to hire you!")逻辑顺序不合理
当前代码先判断是否猜对随机数,再检查输入范围,会导致无效输入被直接判定为错误猜测。应先验证输入合法性,再判断是否猜对。随机数生成时机错误
每次点击按钮都重新生成随机数,用户每次猜测的目标数字都会变化,不符合猜数字游戏的逻辑。需将随机数生成放在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
相关产品推荐
相关产品推荐

