QBASIC:如果条件不符合,则执行GOTO线

时间:2011-12-20 02:23:36

标签: c# qbasic gw-basic

我正在将GW-BASIC代码转换为C#,并且在BASIC语言方面的经验非常有限。我试图理解IF ...那...... GOTO语句是如何表现的。例如,我有以下声明:

85 IF M(3,1)>M(2,1) THEN 95
90 M(3,1)=M(3,1)+P2
95 Z1=R1*(90.567-41.685/M(2,3))

我的问题是:如果第85行的条件不满足,它仍会在第95行执行代码,还是跳过它?

任何方向都会受到高度赞赏......

4 个答案:

答案 0 :(得分:4)

是的,无论第85行的布尔条件的评估如何,第95行都将被执行但是如果85的计算结果为真,则第90行将被跳转,因此不会被执行。

答案 1 :(得分:2)

它将执行第95行的代码。然后语句使程序跳转到第95行并执行该行。

它等同于:

if ( M[3,1] <= M[2,1] ) {
   M[3,1] = M[3,1] + P2
}
Z1=R1*(90.567-41.685/M[2,3])

答案 2 :(得分:1)

显然,代码片段有一个伪IF / ELSE结构,逻辑似乎是:

如果第85行的条件不满足,则QBasic继续90,然后是95。 如果第85行的条件满足,那么QBasic继续95并前进。

答案 3 :(得分:0)

THEN 95THEN GOTO 95的缩写,它将执行指针跳转到第95行。

REMLINE.BAS是一个从Microsoft Basic中删除行号的程序 程式。它仅删除那些不是对象的行号 以下陈述之一:GOSUB,RETURN,GOTO,THEN,ELSE, 恢复,恢复或运行。

BaConBCX可以将您的BASIC转换为C.