|
Программирование >> Дополнительные возможности наследования
выражение2: выражениеЗ; Вот простой пример применения блока выражений: if (bigNumber > smallNumber) { bigNumber = smallNumber; cout bigNumber: bigNumber \ n ; cout smallNumber: smallNumber \ n ; Ha этот раз, если значение переменной bigNumber больше значения переменной smallNumber, то большая переменная не только устанавливается равной значению меньшей переменной, но на экран выводятся также информационные сообщения. В листинге 4.5 показан еще один пример ветвления программы, основанный на использовании операторов отношений. Листинг 4.5. Орнмср вствясния с нспвАьзованпвм опвраторов отнотвнпО 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Листинг 4.5. Демонстрирует использование инструкции if совместно с операторами отношений #include <iostream.h> int mainO int RedSoxScore, YankeesScore; cout << Enter the score for the Red Sox: ; cin RedSoxScore; cout \ nEnter the score for the Yankees: ; cin >> YankeesScore; cout \ n ; if (RedSoxScore > YankeesScore) cout Go Sox!\ n ; if (RedSoxScore < YankeesScore) { cout Go Yankees!\ n ; cout Happy days in New York!\ n ; if (RedSoxScore == YankeesScore) { cout A tie? Naah, cant be.\ n ; cout Give me the real score for the Yanks: cin YankeesScore; if (RedSoxScore > YankeesScore) 31 32 33 34 35 36 37 38 39 40 41 42 cout Knew it! Go Sox! ; if (YankeesScore > RedSoxScore) cout Knew it! Go Yanks! ; if (YankeesScore == RedSoxScore) cout Wow, it really was a tie! cout << \ nThanks for telling me.\ n ; return 0; Enter the score for the Red Sox: 10 Enter the score for the Yankees: 10 A tie? Naah, cant be Give me the real score for the Yanks: 8 Knew it! Go Sox! Thanks for telling me.. 1:-.., . В этой программе пользователю предлагается ввести счет очков для двух - бейсбольных команд. Введенные очки сохраняются в целочисленных переменных. Значения этих переменных сравниваются оператором if в строках 15, 18 и 24. (иредуир предупреждение Многие начинающие программисты по невнимательности ставят точку с запятой после выражения с оператором if: if(SomeValue < 10); SomeValue = 10; В этом программном фрагменте было задумано сравнить значение переменной SomeValue с числом 10 и, если окажется, что оно меньше десяти, установить его равным этому числу, т.е. зафиксировать минимальное значение переменной SomeValue на уровне 10. При выполнении этого программного фрагмента обнаруживается, что переменная SomeValue (вне зависимости от ее исходного значения) всегда устанавливается равной 10. В чем же дело? А дело в том, что оператор if, вернее, связанное с ним выражение сравнения, оканчивается точкой с запятой, создавая тем самым бездействующую инструкцию. Помните, что для компилятора отступ не играет никакой роли. Приведенный выше программный фрагмент можно переписать по-другому; if(SomeValue < 10) проверка ; пустое выражение, контролируемое оператором if SomeValue = 10; присваивание При удалении ненужной точки с запятой последняя строка этого фрагмента станет частью конструкции с оператором if и программа заработает в соответствии с намерением программиста. Если очки одной команды больше очков другой, на экран выводится соответствующее сообщение. Если сравниваемые очки равны, программа выполняет блок выражений, который начинается в строке 25 и оканчивается в строке 38. В этом блоке снова запрашивается счет очков для команды из Нью-Йорка, после чего вновь выполняется сравнение результатов игры комавд. Обратите внимание: если начальный счет команды Yankees превышает счет команды Red Sox, то оператор if в строке 15 возвратит значение false и строка 16 не будет выполняться. Проверка же в строке 18 даст истинный результат (true) и будут выполнены выражения в строках 20 и 21. Затем с помощью оператора if в строке 24 будет проверено равенство очков; результат этого тестирования должен бьпъ ложным (false) (иначе и бьггь не может, если проверка в строке 18 дала в результате значение true). В этом случае программа пропустит целый блок и перейдет сразу к выполнению строки 39. В данном примере получение истинного результата одним оператором if не избавляет от выполнения проверок другими операторами if. ИспоАьзоваппв отступов о программоых коуах Обратите внимание, как в листинге 4.4 используются отступы в конструкции с оператором if. Наверное, фанаты программирования могли бы развязать войну по поводу того, какой стиль выделения программных блоков лучше использовать. И хотя возможны десятки различных стилей, чаще других используются три перечисленных ниже. Начальная открывающая скобка располагается после условия, а закрывающая фигурная скобка, которая завершает блок операторов, выравнивается по одной линии с оператором if: if (условие) { выражение Фигурные скобки располагаются под словом if, выравниваясь по одной линии, а операторы блока записываются с отступом: if (условие) { выражение Отступ используется как для обеих фигурных скобок, так и для выражений блока: if (условие) { выражение } Вариант, используемый в этой книге, отражает лишь пристрастие автора и ни к чему вас не обязывает. Кдючввов слово bIsb Довольно часто в программах требуется, чтобы при выполнении некоторого условия (т.е. когда это условие возвратит значение true) программа выполняла один блок команд, а при его невыполнении (т.е. когда это условие возвратит значение false) -
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |