我正在將GW-BASIC代碼轉換爲C#,並且在BASIC語言中的體驗非常有限。我想了解IF ... THEN ... GOTO語句的行爲。例如,我有以下聲明:QBASIC:如果條件不符合,執行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行執行代碼呢,還是跳過?
任何方向將不勝感激...
我正在將GW-BASIC代碼轉換爲C#,並且在BASIC語言中的體驗非常有限。我想了解IF ... THEN ... GOTO語句的行爲。例如,我有以下聲明:QBASIC:如果條件不符合,執行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行執行代碼呢,還是跳過?
任何方向將不勝感激...
是,無論布爾條件中的線85的評價,95行會被執行,但如果85的計算結果爲真,則線90將躍升,從而將不會執行。
顯然代碼段具有僞IF/ELSE結構,邏輯好像:
如果線85的條件不那麼QBasic中繼續滿足90,然後95. 如果第85行的條件滿足,那麼QBasic繼續95並轉發。
它將執行第95行的代碼。then語句使程序跳轉到第95行並執行該行。
這是相同的:
if (M[3,1] <= M[2,1]) {
M[3,1] = M[3,1] + P2
}
Z1=R1*(90.567-41.685/M[2,3])
THEN 95
是短期的THEN GOTO 95
,可跳轉執行指針到線95
REMLINE.BAS是一個程序,從Microsoft基本 程序刪除行號。它僅刪除那些不是以下語句之一的對象 的行號:GOSUB,RETURN,GOTO,THEN,ELSE, RESUME,RESTORE或RUN。
感謝您的信息!這是我最終需要做的,以使我接近我想要獲得的位置。 – 2012-04-10 12:51:01
這是原始的代碼比QBASIC舊的基礎。它在QBASIC中運行得很好。 – Joshua 2011-12-20 02:36:33
如果您的QBasic環境正常,您爲什麼不使用上述邏輯和一些打印語句來設置一個小測試? – BenSwayne 2011-12-20 02:43:30
@Joshua是的,我意識到,深入挖掘後...我更新了問題,以反映... – 2011-12-22 15:19:58