重复语句总是恰好迭代一次
Repeat statement always iterates exactly once
我刚开始使用以下猜谜游戏进行 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
的随机值相同,我很难相信。
知道我做错了什么吗?
=
是 "equation-variable assignment",不是等式测试
我没有 TI-86,但我很确定这是正确的。
A less commonly used method of storing a value to a variable is with
the "=" operator. The code
:A=45
does pretty much the same thing as [the store arrow], except
that it makes A an "equation variable" (Which can be used in the
equation solver) instead of a "real variable".
由于A被存入,表达式A=X
将returnA的新值;即 X。因为 TI-BASIC 认为所有非零数都为真,并且 X 始终介于 1 和 10 之间,所以 A=X
将 A 分配给 X 并且 returns 为真值,从而停止循环。
正如 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
我刚开始使用以下猜谜游戏进行 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
的随机值相同,我很难相信。
知道我做错了什么吗?
=
是 "equation-variable assignment",不是等式测试
我没有 TI-86,但我很确定这是正确的。
A less commonly used method of storing a value to a variable is with the "=" operator. The code
:A=45
does pretty much the same thing as [the store arrow], except that it makes A an "equation variable" (Which can be used in the equation solver) instead of a "real variable".
由于A被存入,表达式A=X
将returnA的新值;即 X。因为 TI-BASIC 认为所有非零数都为真,并且 X 始终介于 1 和 10 之间,所以 A=X
将 A 分配给 X 并且 returns 为真值,从而停止循环。
正如 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