我正在将某个变量 I
的 bool 表达式传递到操作 I
的 TI-BASIC 程序中,但该 bool 表达式仅计算一次 - at程序执行的开始。
这是一个示例程序:
Prompt J
0 -> I
Lbl 1
1 + I -> I
Disp I
If J
Then
Goto 2
Else
Goto 1
End
Lbl 2
End
(这不是我正在编写的实际程序,它更复杂,因此不能使用 for 循环;上面的程序显然可以使用 for 循环编写得更优雅。)
我们从数字 0 开始将 I
递增 1。每次递增后,我们检查 J
是否为 true,如果是,则停止。
如果我传入J=I≠5
,程序会在打印1
后停止。
如果我传入J=I=5
,则结果不是预期的。 我打算让程序在 I=5
为 true 时停止,但程序会无限期地继续下去。这意味着 J
仅在程序的开头。
是否可以在该循环的每次执行中重新评估J
?
我假设 J
一旦传入就会被 0
和 1
替换。要重新表述我的问题,是吗?可以输入/保留 bool 表达式作为未计算的字符串/文字吗?然后我会在程序中调用类似 eval(J)
的内容。
最佳答案
您更新中的假设是正确的; J 被替换为数值。
对你重新表述的问题的答案是肯定的,你可以传递一个表达式,但你必须使用函数变量而不是真正的变量:
Prompt Y1
每当调用 Y1
时,它都会重新计算,因此如果将 I=5
存储到 Y1
,则 Y1
当 I≠5 时返回 0,当 I=5 时返回 1。
关于ti-basic - 在 TI-BASIC 程序中以非计算形式重新计算或存储 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675709/