Программирование >>  Дополнительные возможности наследования 

1 ... 47 48 49 [ 50 ] 51 52 53 ... 265


5 6 7 8 9

10 11 12 13 14 15 16

int mainO {

int counter = 0; инициализация счетчика

loop: counter ++; начало цикла

cout. counter: counter << \ n ;

if (counter < 5) проверка значения

goto loop; возвращение к началу

cout << Complete. Counter: << counter << .\ n return 0;

counter counter counter counter counter

Complete. Counter: 5,

В строке 8 переменная counter инициализируется нулевым значением. Мет-

ка loop: в строке 9 показывает начало цикла. На каждой итерации значение counter увеличивается на единицу и выводится на экран. В строке И выполняется проверка значения переменной counter. Если оно меньше пяти, значит условие выполняется и управление передается оператору goto, в результате чего осуществляется переход на строку 9. Итеративный процесс выполняется до тех пор, пока значение переменной counter не достигнет пяти. После этого программа выходит за пределы цикла и на экран выводится окончательный результат.

Почему слеуует озОегать оператора yoto

Со временем нелестные высказывания в адрес оператора goto участились, впрочем, вполне заслуженно. С помощью оператора goto можно осуществлять переход в любую точку программы - вперед или назад. Такое беспорядочное использование этого оператора привело к появлению запутанных и абсолютно непригодных для восприятия программ, получивших жаргонное название спагетти . Поэтому последние двадцать лет преподаватели программирования во всем мире твердили студентам одну и ту же фразу: Никогда не используйте оператор goto .

На смену оператору goto пришли конструкции с несколько более сложной структурой, но и с более широкими возможностями: for, while и do...while. Несмотря на то что после полного искоренения оператора goto структура программ значительно прояснилась, негативные высказывания в его адрес следует признать преувеличенными. Как любой инструмент программирования, при правильном использовании оператор goto может оказаться достаточно полезным. В силу этого комитет ANSI принял решение оставить этот оператор в языке. Правда, вместе с этим родилась шутка: Дети! Использование этого оператора в домашних условиях небезопасно!



в циклах, организованных с помощью оператора while, выполнение последовательности операций продолжается до тех пор, пока условие продолжения цикла истинно. В примере программы в листинге 7.1 значение переменной counter увеличивалось до тех пор, пока не стало равным пяти. Листинг 7.2 демонстрирует тот же алгоритм, реализованный с помощью оператора whi lo.

Лисщццв 7.Z. Орггнцзвцця цикле с номощьш оивргшора while

2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18

Листинг 7.2,

Организация цикла с помощью оператора while Kinclude <iostream.h>

int mainO {

int counter = 0;

присвоение начального значения проверка условия продолжения цикла

while(counter < 5) {

counter++; тело цикла

cout << counter: << counter << Л n ;

cout Complete. Counter: counter .\ n ;

return 0;

counter counter counter counter counter

Complete. Counter: 5.

Эта несложная программа показывает пример организации цикла с

помощью оператора while. В начале каждой итерации проверяется ус-

ловие, и, если оно выполняется, управление передается на первый оператор цикла. В нашем примере условию продолжения цикла удовлетворяют все значения переменной counter, меньшие пяти (строка 10). Если условие выполняется, запускается следующая итерация цикла. В строке 12 значение счетчика увеличивается на единицу, а в строке 13 выводится на экран. Как только значение счетчика достигает пяти, тело цикла (строки 11-14) пропускается и управление передается в строку 15.



Сложные конструкции с оператором while

Сложность логического выражения, являющегося условием в операторе while, не ограничена. Это позволяет использовать в конструкции while любые логические выражения С++. При построении выражений допускается использование логических операций: && (логическое И), 11 (логическое ИЛИ), а также ! (логическое отрицание). В листинге 7.3 показан пример использования более сложных условий в конструкциях с оператором while.

Листинг 7.3. Сложные усАовня в ионЕшрдкцняк while

2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33

Листинг 7.3.

Сложные условия в конструкциях while

include <iostream.h>

int main() {

unsigned short small; unsigned long large; const unsigned short MAXSMALL=65535;

cout Enter a small number: ; cin >> small;

cout Enter a large number: ; cin >> large;

cout small: small ... ;

на каждой итерации проверяются три условия

while (small < large && large > О && small < MAXSMALL)

if (small % 5000 == 0) после каждых 5000 строк выводится точка cout . ;

small++;

large-=2;

cout \ nSmall: small Large: large endl; return 0;

Vt: Enter a small number: 2

Enter a large number: 100000

small: 2.........

Small: 33335 Large: 33334



1 ... 47 48 49 [ 50 ] 51 52 53 ... 265

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика