快速基本结肠线分离器

时间:2013-08-08 20:57:28

标签: qbasic

我正在研究一些旧的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中使用过,所以我看不到它会被执行。

1 个答案:

答案 0 :(得分:5)

<击> 是的,我相信您的评估是正确的。冒号是一个语句分隔符,允许您在同一行上有多个语句。假设你的子程序在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,我相信它被称为),它应该有助于将这些类型的程序转换为更新的样式。但我自己从未使用过它。