|
Программирование >> Дополнительные возможности наследования
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
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |