|
Программирование >> Аргументация конструирования
Глеваб Операторы управления программой 8э(нйй гла£е... Управление ходом программы с помощью команд ветвления / Вьшолнсние циклов Вложенные команды управления / Инструкция выбора ж ж ростые программки, которые появлялись в первых четырем вах, обраба-* тывали фиксированное количество вводов и выводов результатов вычислений, после чего завершали работу. Эти приложения бьши лишены какого бы то ни б1ло контроля над работой программы, в частности не выполняли никаких проверок Но компьютерные программы могут принимать решения. Вспомните: когда пользователь нажимает клавиши, компьютер реагирует на это выполнением соответствующих команд. Например, если пользователь нажимает компьютер копирует содер- жимое выделенного блока в буфер обмена. Если пользователь перемещает мышь, на экране двигается ее курсор. Этот список можно продолжать до бесконечности. Программы же, которые не принимают никаких решений, неизбежно скучны и однообразны. Команды, управляющие ходо аммы, указывают на то, какие действия она должна выполнить в зависимости от результата вычисления какого-либо логического выражения (о котор1х шла речь в главе 4, Выполнение логических операций ). Существует три типа управляющих инструкций: операторы ветвления (или условного перехода), цикла и выбора. ifnftaiAeHuexoqoAi nfwzfuuiMbt с помощью fcoMOfu/ eeffUUenuJi Проще всего управлять ходом программы с помощью инструкции ветвления, которая позволяет программе, в зависимости от результата логического выражения, решить, по какому 1[лдвух возможных путей выполнения инструкций следует двигаться дальше. В С + - оператор условного перехода реализуется с помощью инструкции if: if (m > n; \ 1- тельность операторов инструкции, которые должна! бгть выполнен!, если п больше и else 2-я последовательность операторов инструкции, которые нужно выполнить в противном случае Прежде всего вычисляется логическое выражение m > п. Если его значение - true, программа выполняет первую последовательность операторов. Если же выражение ложно, управление передается второй последовательности. Оператор else не обязателен: если он опушен, C + + считает, что он существует, но является пустым. Если в текущей ветви оператора if имеется только одна инструкция, скобки использовать необязательно. Однако очень легко сделать ошибку, которую без скобок, структуру операторов, компилятор C + + обнаружить не сможет. Поэтому намного безопаснее включать скобки всегда. Если друзья будут уговаривать вас не использовать скобки, не поддавайтесь! Работу оператора можно рассмотреть на следующем примере: hDemo - введите дв ла. Если первый аргумент больше, выполняем операторы первой ветви, если меньше - второй include <stdio.h> iinciude <iostream.h> in (int argc, char* pszArgs[] ) ( вводим первый аргумент... int argl; cout << Введите argl: ; cin argl; ... второй int arg2; cout Введите arg2: cin arg2; теперь решаем, что делать: if (argl > arg2) cout аргумент 1 больше, чем аргумент 2\n ; else { cout << аргумент I мьше, чем аргумент 2\п ; return 0; Программа считывает два целых числа, вводимых с клавиатуры, и сравнивает их. Если выражение Trgl больше g2 истинно, то выполняется инструкция cout аргумент 1 больше, чем аргумент Если же нет, то управление переходит к последовательности операторов, соответствующей условию else: cout << аргумент 1 не больше, чем аргумент 2\г. ;. Вшгомшше циклов Оператор перехода позволяет управлять работой программы, когда существуют альтернативные пути ее выполнения. Это усовершенствование языка хотя и весьма значительное, но все же не достаточное для написания полнофункциональных программ. Рассмотрим проблему обновления экрана компьютера. При перерисовывании содержимого типичного дисплея компьютеру необходимо выводить на экран тысячи пикселей. Если программа не умеет повторно выполнять один и тот же фрагмент кода, вы будете вынуждены тысячи раз записывать одно и то же множество инструкций. Для решения этой проблемы необходим способ, который позволит многократно выполнять одни и те же последовательности инструкций. Операторы цикла предоставляют возможность решить эту задачу. Цикл while Самый простой цикл можно организовать с помощью оператора while. Он выглядит таким образом: while (условие) { Этот уод выполняется повторно, пока yMBire остается истинно } Снача1а проверяется условие. Условием могут быть выражения вида var > 10, varl == var2 или любые другие. Если условие истинно, выполняются инструкции в скобках. Дойдя до закрывающей скобки, компилятор передает управлепие в начало цикла, и все повторяется вновь. Таким образом, смысл оператора while в том, что программный код в скобках повторно выполняется до тех пор, пока не нарушится условие (этот процесс напоминает мне утренние прогулки с собакой вокруг дома, пока она не... ну а потом мы возвращаемся). Если условие сначала было тогда что может заставить его стать лож- ным? Рассмотрим следующий пример программы: eDeirtO - введите счетчик цикла. Программа выводит количество выполненнтх циклов while ttinclude <stdio.h> # included lost ream. h> int main (int arg, char* pszArgs[]) ввод счетчика цикла int loopCount; cout; Введите loopCount: ; cin >> loopCount; теперь в цикл шодим значения while (loopCount > 0) loopCount = loopCount - 1; cout Осталось выполнить loopCount циклов\п ;
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |