HP 分时 BASIC 中的 GOTO/OF

问题描述

对于 HP Time-Shared BASIC 中的以下代码,我想知道第 2270 行:

2180  INPUT X
2190  IF X=1 THEN 2210
2200  LET X=2
2210  LET X=X+1
2220  IF X=3 THEN 2260
2230  IF B>39 THEN 2260
[irrelevant code lines removed for clarity]
2260  X1=X1*(-1)
2270  GOTO X OF 2290,2540,2720

基于此代码库中的其他示例,似乎 GOTO [variable] OF [line1,line2,...] 似乎相当于 if X == 1 GOTO LINE 1;如果 X == 2,转到第 2 行,依此类推

我找到了相关的维基百科位“通过 GOTO/OF 和 GOSUB/OF 语句计算流控制”,但我希望更清楚。

谁能确认一下?

谢谢,

迦勒

解决方法

幸运的是,维基百科页面有一个指向所有原始文档的链接:

http://www.bitsavers.org/pdf/hp/2000TSB/

这包括完整的语言参考:

http://www.bitsavers.org/pdf/hp/2000TSB/22687-90001_AccessBasic9-75.pdf

第 11-40 页关于 GOTO/OF 的内容

转到数字表达式 OF 语句编号列表

...

当使用 GO TO 语句的第二种形式时,数字表达式被计算并四舍五入为整数“n”。然后将控制权转移到语句编号列表中的“第n个”语句编号,其中语句编号列表 em> 是一个或多个以逗号分隔的语句编号。如果没有与数值表达式的值对应的语句号,则忽略GO TO语句并执行GO TO语句后面的语句

这似乎证实了你的猜测

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...