【发布时间】:2016-09-03 00:11:04
【问题描述】:
在这个简单的程序中,一个点沿对角线穿过一个数组并从墙上反弹。它接触到的每个像素都会改变颜色。
在我的 TI 84+ CE 上,无限 while 循环每次都会在同一个位置过早停止。为什么?
0→X
0→Y
1→C
1→D
{11,20→dim([A]
For(E,1,20,1)
For(F,1,11,1)
0→[A](F,E)
End
End
{1,2→dim([B]
21→[B](1,1
21→[B](1,2
{1,2→dim([C]
12→[C](1,1
12→[C](1,2
ClrHome
ClrDraw
While 1
If X≠[B](1,2) and Y≠[C](1,2)
Then
Pxl-On(Y,X,RED
X+C→X
Y+D→Y
Else
If X≥[B](1,2)
Then
[B](1,1)-[B](1,2)→[B](1,2)
C1→C
End
If Y≥[C](1,2)
Then
[C](1,1)-[C](1,2)→[C](1,2)
D1→D
End
End
End
【问题讨论】:
-
当循环明显停止时,
X和Y的值是多少?X和Y的预期值范围是多少? -
尝试改用
Lbl和Goto,看看会不会有不同的结果 -
我敢打赌循环不会停止,但内部的 If 语句停止评估为真。
标签: while-loop ti-basic