QBASIC: выполнение строки GOTO, если условие не выполнено - PullRequest
1 голос
/ 20 декабря 2011

Я конвертирую код GW-BASIC в C # и имею очень ограниченный опыт работы с языками BASIC в целом.Я пытаюсь понять, как ЕСЛИ ... ПОТОМ ... 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 ]

4 голосов
/ 20 декабря 2011

Да, независимо от оценки логического условия в строке 85, строка 95 будет выполняться, НО, если значение 85 равно true, тогда строка 90 будет перескакивать и, следовательно, не будет выполняться.

2 голосов
/ 20 декабря 2011

Он выполнит код в строке 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])
1 голос
/ 20 декабря 2011

Очевидно, что фрагмент кода имеет псевдо-структуру IF / ELSE, логика выглядит так:

Если условие строки 85 не выполняется, тогда QBasic продолжает с 90, а затем 95. Если условие строки 85 выполнено, то QBasic продолжает с 95 и вперед.

0 голосов
/ 28 марта 2012

THEN 95 - это сокращение от THEN GOTO 95, которое переводит указатель выполнения в строку 95.

REMLINE.BAS - это программа для удаления номеров строк из Microsoft Basic Программы. Он удаляет только те номера строк, которые не являются объектом одного из следующих утверждений: GOSUB, RETURN, GOTO, THEN, ELSE, RESUME, RESTORE или RUN.

BaCon и BCX могут превратить ваш бейсик в C.

...