我刚刚开始使用以下猜谜游戏进行 TI-86 BASIC 编程:
:randInt(1,10)→X
:0→A
:Repeat A=X
:Disp "Guess the number"
:Input "between 1 and 10.", A
:End
我对Repeat
语句的理解是该块将执行直到条件为真。就我而言,我发现该块只执行一次。这意味着A
用户输入的值总是与 的随机值相同X
,我很难相信。
知道我做错了什么吗?
我刚刚开始使用以下猜谜游戏进行 TI-86 BASIC 编程:
:randInt(1,10)→X
:0→A
:Repeat A=X
:Disp "Guess the number"
:Input "between 1 and 10.", A
:End
我对Repeat
语句的理解是该块将执行直到条件为真。就我而言,我发现该块只执行一次。这意味着A
用户输入的值总是与 的随机值相同X
,我很难相信。
知道我做错了什么吗?
=
是“等式变量赋值”,而不是等式测试我没有 TI-86,但我很确定这是对的。
一种不太常用的将值存储到变量的方法是使用“=”运算符。编码
:A=45
与 [存储箭头] 的作用几乎相同,只是它使 A 成为“方程变量”(可用于方程求解器)而不是“实变量”。
由于 A 被存入,表达式A=X
将返回 A 的新值;也就是 X。因为 TI-BASIC 认为所有非零数都为真,并且 X 始终介于 1 和 10 之间,A=X
所以将 A 分配给 X 并返回一个真值,从而停止循环。
正如 OP 所说,==
改为使用相等比较。
可以使用运算符比较 TI-86 版本的 TI-BASIC 中的变量==
。所以程序变成了
:randInt(1,10)→X
:0→A
:Repeat A==X
:Disp "Guess the number"
:Input "between 1 and 10.", A
:End