我正在处理一些旧的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/