Операторы FOR и NEXT — QBasic(Бейсик)

Назначение :
Повторяет блок операторов указанное число раз.
 
Как записывается :
for i = a to b step h
g
next i
 
Где :
for — оператор цикла
i — имя параметра
a — начальное значение параметра
b — конечное значение параметра
step — шаг
h — значение шага с которым изменяется параметр цикла
g — тело цикла
next — возвращает на заголовок цикла
 
Например :
10 Cls
20 For i = 0 to 25 Step 5
30 Print i

Операторы FOR и NEXT предназначены для организации циклического вычислительного процесса.

Формат: FOR V=E1 TO E2 STEP E3

. . .

NEXT V

V- переменная, используемая в качестве счетчика цикла;

E1, E2, E3 — арифметические выражения, задающие соответственно начальное, конечное значение и шаг изменения переменной V.

Операторы FOR и NEXT могут использоваться только попарно, т.е. в программе каждому оператору FOR должен соответствовать свой оператор NEXT. FOR определяет начало, а NEXT — конец цикла. Если шаг изменения V равен 1, то конструкцию STEP E3 можно опускать.

При работе цикла происходят следующие операции:

1. Вычисляются значения E1, E2, E3, если они являются арифметическими выражениями.

2. Переменной V присваивается в качестве начального значения значение E1.

3. Полученное значение V сравнивается со значением выражения E2. При этом, если E3 > 0, то проверяется условие V <= E2, если E3 < 0, то проверяется условие V >= E2.

4. Если проверяемое условие истинно, то выполняется группа операторов, расположенных между FOR и NEXT.

5. Оператор NEXT изменяет текущее значение переменной V на шаг E3 (V=V+E3 ) и передает управление в начало цикла. Для нового значения V опять проверяется одно из условий пункта 3. При истинности условия еще раз выполняется группа операторов между FOR и NEXT. Весь процесс выполняется до тех пор, пока проверяемое условие не примет значение «ложно». В этом случае выполнение цикла заканчивается и управление передается оператору, следующему в программе непосредственно после оператора NEXT.

Пример: Найти сумму натурального ряда чисел от 1 до N.

10 INPUT N

20 S=0

30 FOR I=1 TO N

40 S=S+I

50 NEXT I

60 PRINT «S=»;S

70 END

При организации циклов с использованием операторов FOR-NEXT необходимо учитывать следующее:

1. Проверка истинности условия V <= E2 (V >= E2) осуществляется перед очередным выполнением цикла. Следовательно, если это условие не выполняется перед первым выполнением цикла, то цикл не будет выполняться ни разу.

Например, FOR I=15 TO 5

2. Для правильного выполнения цикла внутри него не должно содержаться операторов, изменяющих значения счетчика цикла.

Например,30 FOR I=1 TO 11

40 A=I^2

50 I=I+A

60 NEXT I

3. Передача управления внутрь цикла, минуя его заголовок, не допускается.

Например,40 GO TO 100

50 FOR K=10 TO 50 STEP 2

……………………

100 PRINT K

110 NEXT K

4. Внутри циклов могут быть другие операторы циклов, т.е. допускается вложение циклов друг в друга. Перекрытие циклов не допускается и внутренние циклы должны заканчиваться до завершения внешних.

FOR I1

FOR I2

FOR I3

(NEXT I1 нельзя !)

NEXT I3

NEXT I2

NEXT I1

5. Можно использовать оператор NEXT без переменной, что ускорит выполнение цикла .

Например, 110 NEXT вместо 110 NEXT K

Можно также объединять операторы NEXT, если они следуют друг за другом.

Например, 200 NEXT I3,I2,I1 вместо 200 NEXT I3

210 NEXT I2

220 NEXT I1