TI-84 程序,代码进入错误的 if 语句

TI-84 program, the code is going into the wrong if statement

所以我的 TI-84 计算器上有一个程序可以计算 3-D 形状的体积。这是代码

ClrHome
Disp "Z=Cuboid
Disp "Y=Tri Prism
Disp "X=Square Pyramid
Disp "W=Tri Pyramid
Disp "V=Cylinder
Disp "U=Cone
Disp "T=Sphere
Prompt S
Pause

If S=Z
Then
Prompt W,L,H
W*L*H→θ
ClrHome
Disp "V=
Disp θ
Pause
ClrHome
Stop
End

If S=Y
Then
Prompt A,B,C,H
*formula*→θ
ClrHome
Disp "V=
Disp θ
Pause
ClrHome
Stop
End

If S=X
Then
Prompt H,L,W
*formula*→θ
ClrHome
Disp "V=
Disp θ
Pause
ClrHome
Stop
End

这是我目前的全部程序,问题是当我输入 S 的值作为 X,(S=X) 并按回车键继续时,程序进入 If S=Y 并要求我输入A、B、C 和 H。如果我输入 S=Z,则程序转到 S=Z 没问题。如果我输入 S=Y,程序进入 S=Y 没问题。但是当我输入 S=X 时,程序进入 S=Y。为什么?

它的工作或多或少是偶然的。此代码依赖于变量 XYZ 等的不同值,因此可以区分它们。这显然是一个非常脆弱的设计。

由于这是一个菜单,您可能对 Menu( 命令感兴趣:

Menu("Select Shape","Cuboid",C,"Tri Prism",TP,"Square Pyramid",SP
Lbl C
Prompt W,L,H
W*L*H
Disp Ans
Stop
Lbl TP
Prompt A,B,C,H
"dunno
Disp Ans
Stop
Lbl SP
Prompt H,L,W
"dunno
Disp Ans

我把公式"bare"和Disp Ans放在这里是为了方便用户在后续的计算中使用答案,而不会不必要地覆盖一些变量。