Операторите за следващия-

В основния език, чифт оператори, осигуряване на строителния цикъл от същия вид, както в горния пример (вж. Раздел 3.3.). Този отчет за и на другия, който граничи с група от оператори, които изграждат тялото на цикъла. Например, по-горе програма може да ги използва, за да бъде пренаписана, както

Линия 20 автоматично се задължава задача цикъл брояч първоначална стойност I 1 и аз се увеличи с 1, след всяко преминаване през примката. Линия 60 бележи края на цикъла.

Всички изявления между операторите и за следващото изпълнена, когато аз = 1, I = 2, I = 3 и така нататък до I = N. След това управлението се насочва към изложението след NEXT оператора. Ето защо, в нашия пример ще бъде въведена, преобразуват и отпечатани температурни стойности на N, след това излиза на програмата.

Тази програма може да се илюстрира със следната схема:

ENTER C F = C * F ... ПЕЧАТ END

Обща нотация: ЗА I = й или к ДА

когато аз е числова променлива за контрол, и й. к, m може да бъде числови изражения (т. е.

константи, променливи и комбинации от променливи и константи).

Долната граница на цикъла по инициатива на оператора FOR, е операторът NEXT аз. Всички изявления между FOR и в непосредствена близост се изпълняват

I = J, I = J + m, I = J + 2m, I = J + 3 метра, I =. дотогава, докато се достигне граница к.

С други думи, ако т е положителен, цикълът продължава, докато през цялото време аз ≤k. Ако m е отрицателен, тогава цикълът продължава докато ≥k. Ако допълнителна функция дума етап (етап) липсва, тогава размерът на стъпката се приема за 1 m.

Ето няколко примера. програма

10 ЗА I = 1 до 10

отпечатва всички числа от 1 до 10, програмата

10 за к = 1 до 10, Стъпка 2

отпечатате всички нечетни числа от 1 до 10. Програма

30 за Р = X + Y-X * Y

Той отпечатва стойностите 5 и 6, както и на програмата

10 ЗА А = 10 на 1 стъпка -1

Въведете броя 10-1 в низходящ ред.

В много системи, основно, например Sinclair ZX81, след проверка изход цикъл се извършва в съответствие със стандарта, в началото на цикъла. Следователно, работата на операторите на

нищо не се отпечатва и контрол се предава на линия 40. Това съответства на пример на програмната част. 3.3 и struktogramme "Повторете, докато".

В други системи с BASIC, като Би Би Си, стандартът не е изпълнено. Цикълът се извършва най-малко веднъж, и проверка на завършването му е направена в края. Такъв подход отговаря на модифицираната програма на специализирана секция. 3.3 и struktogramma "Повторете, докато". В този случай, по-горе програма ще отпечата 3.

Във всички примерите по-долу, се приема, че И ЗА СЛЕДВАЩАТА линия се осъществява в съответствие struktogramme "Повторете, докато", тъй като този вариант осигурява стандарт за минимално подмножество от основния език. Ако системата ви проверява условията на печат 56

цикъл се извършва в края на цикъла, е необходимо да се използва друг struktogrammoy "Повторете, докато" етикетиране на храна в долната част на официална дума за. Не може да ми пука за това разграничение: това води до промени в резултатите от работната програма, по време на прехода от първия тип система към системата от втори тип в около един на хиляда. Просто трябва една идея, за това, което прави системата ви от тези два вида. Нека да дадем няколко уговорки. Не променяйте стойността на променливата на контрол в рамките на цикъла. Системата автоматично увеличава стойността на тази променлива, и да го провери всеки път през примката. Ето защо, управляема променлива не се появява в лявата част на отчета за наем, в READ или изявление INPUT, и не трябва да се използва като променлив контрол на вложените цикъл. По-долу са примери за неправилна работа на зададена величина:

10 ЗА I = 1 до 10

20 I = I + 1 (контролна променлива I варира) 30 СЛЕДВАЩАТА I

10 ЗА = 8 до 2 Стъпка 2

20 INPUT I, А (манипулирани променлива съдържа изявление INPUT)

Не трябва да се разчита на факта, че след освобождаването на променливата на управляващата верига ще има определена стойност. В примера

10 ЗА L = 1 до 10

изпълнението на линия 40 може да се отпечата 10,11 или дори някаква глупост. Резултатите ще бъдат различни за различните системи, въпреки че се препоръчва минимална подгрупа стандарт BASIC, че променливата на контрол след освобождаването на поредицата съдържа стойността, която би трябвало да има в цикъла, когато тя е продължение на още една стъпка.

Опитайте вътре в ЗА контур не се променят, посочена в декларацията ЗА извън стойностите на променливите контрол, въпреки че не може да се отрази на работата на цикъла; например, програмата

20 за I = А ДО 4

50 NEXT I дава правилни резултати 2, 3 и 4.

СЛЕДВАЩАТА оператор на обща форма: Следващите аз

NEXT, когато аз - числова променлива.

Завършва цикъл на ЗА, повечето версии на BASIC на всеки оператор, NEXT изисква отделна декларация, посочваща името на променливата за контрол. Въпреки това, в някои версии разрешава използването на следващия отчет, без да уточнява името на променливата на контрол, или дори (в случая на вложени цикъла), което показва, имената на няколко контролни променливи.

За да излезете от цикъла FOR-NEXT, без да се чака завършването му, или може да се използва, ако отидете на операторите. Все пак, това не се препоръчва като начин за излизане от цикъла може да предизвика недоразумения и, в допълнение, обикновено е невъзможно да обрисуват struktogrammoy. И във всеки случай, никога не прехвърли контрола в примката ЗА СЛЕДВАЩАТА-, тъй като това може да доведе до непредсказуеми резултати.

Източник: Б. Уолш Програмиране в Basic: Per. от английски език. AM радио и комуникация, 1988. 336 с: Ил.