我正在处理一些旧的qbasic代码。所有的Goto语句都一团糟。我是否正确,下一行将始终返回?

IF FLAG = 0 THEN TARGET = X: GOSUB 55000: TEMP = XI - TEMP2: RETURN

因此,如果我正确理解了冒号,则会在同一行上将语句分开。 if仅与TARGET = X有关。GOSUB,TEMP =和RETURN将始终执行。正确的?

我感到困惑的部分原因是因为下一行显示
IF FLAG = 1 THEN STEP = X: GOSUB 115000

而且由于第二条语句的标签从未在GOTO中使用,所以我看不到它会被执行。

最佳答案

是的,我相信您的评估是正确的。冒号是一个语句分隔符,使您可以在同一行上包含多个语句。假设您的子例程在55000返回,则该行也应返回。

我错了。运行该程序:

if 1=2 then print "Never printed" : print "how about this?"
print "End of program"

qb64.net上仅打印End of program。我认为它的语法细节与Qbasic相同,尽管这是反向工程。

顺便说一句,此代码是以QBasic之前的样式编写的(例如,使用GOSUB和行号)。 QBasic(remline.bas,我相信它被称为)经常附带一个脚本,该脚本应有助于将这类程序转换为较新的样式。不过,我自己从未使用过它。

关于qbasic - 快速基本冒号行分隔符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18135971/

10-11 08:55