我正在将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行执行代码,还是跳过它?
任何方向都会受到高度赞赏......
答案 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 95
是THEN GOTO 95
的缩写,它将执行指针跳转到第95行。
REMLINE.BAS是一个从Microsoft Basic中删除行号的程序 程式。它仅删除那些不是对象的行号 以下陈述之一:GOSUB,RETURN,GOTO,THEN,ELSE, 恢复,恢复或运行。