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

1 ... 20 21 22 [ 23 ] 24 25 26 ... 265


другой блок, в листинге 4.4 программист намеревался выводить на экран одно сообщение, если первая проверка (RedSoxScore > Yankees) возвращает значение true, и другое сообщение, если эта проверка возвращает значение false.

Показанный выще способ последовательного использования нескольких операторов if для проверки ряда условий прекрасно работает, но слишком громоздкий. Улучшить читабельность программы в подобных случаях можно с помощью ключевого слова else (листинг 4.6):

if (условие)

выражение; else

выражение;

Листинг 4.В. Пример иснодьзованвв ммчевого сдова else

1: Листинг 4.6. Пример конструкции с ключевыми

2: словами if и else

3: ftinclude <iostream.h>

4: int mainO

5: {

6: int firstNumber, secondNumber;

7: cout Please enter a big number: ;

8: cin firstNumber;

9: cout \ nPlease enter a smaller number: ;

10: cin secondNumber;

11: if (firstNumber > secondNumber)

12: cout \ nThanks!\ n ;

13: else

14: cout \ nOops, The second is bigger! ; 15:

16: return 0;

17: }

. Please enter a big number: 10

Please enter a smaller number; 12 Oops. The second is bigger!

В строке 11 проверяется условие, заданное в операторе if. Если это условие истинно, будет выполнена строка 12, после чего работа программы завершится в строке 16. Если же это условие возвратит false, программа продолжит работу со строки 14. Если в строке 13 удалить ключевое слово else, строка 14 будет выполнена в любом случае, вне зависимости от выполнения условия. Но в данной конструкции if-else будет выполняться либо блок после if, либо блок после else.

Помните, что в конструкции if-else можно использовать не только отдельные выражения, но и целые блоки выражений, заключенных в фигурные скобки.



Оператор if

Ниже приводится синтаксис оператора if.

Форма 1:

if (условие) выражение;

следующее выражение;

Если условие возвращает true, то выполняется выражение, а за ним и следующее выражение. Если условие возвратит false, то выражение игнорируется, а программа переходит к выполнению следующего выражения,

Помните, что вместо выражения может использоваться целый блок, заключенный в фигурные скобки.

Форма 2:

if (условие)

выражение1; -else

выражение2; следующее выражение;

Если условие возвращает значение true, выполняется выражение!, в противном случае выполняется выражение2. После этого выполняется следующее выражение.

Пример:

if(SomeValue < 10);

cout: SoffleValue. is less than 10 ); else.

cout SomeValue Is not less than 10! ); cout Done. endl;

Сложные конструкции с if

Нет никаких офаничений на использование любых операторов в блоках выражений в консчрукции if-else, в том числе на использование дополнительных операторов if и else. В этом случае будет получена вложенная конструкция из нескольких операторов if:

if (условие1) {

if (уел о вне 2) выражение 1: else {

if (условиеЗ)

выражение2; else

выражениеЗ;

else выражениеА;



Смысл этой конструкции из нескольких операторов if можно расшифровать так: если условие1 истинно и условие2 истинно, выполните выражение!. Если условие1 истинно, а условие2 - нет, тогда проверьте условиеЗ и, если оно истинно, выполните вы-ражение2. Если условие! истинно, а условие2 и условиеЗ - нет, тогда выполните выраже-ниеЗ. Наконец, если условие! ложно, выполните выражение4. Да, вложенные операторы if могут кого угодно запутать!

Пример использования такой сложной конструкции с несколькими операторами if показан в листинге 4.7.

Лисшивг 4.7. Едожиые ноисшрутцш с вдвжениыми оиерашврамв if

1: Листинг 4.7. Пример сложной конструкции с 2: вложенными операторами if 3: #include <iostream.h> 4: int main() 5: {

6: Запрашиваем два числа

7: Присваиваем числа переменным bigNumber и littleNumber

8: Если значение bigNumber больше значения littleNumber,

9: проверяем, делится ли большее число на меньшее без остатка

!0: Если да, проверяем, не равны ли они друг другу

12: int firstNumber, secondNumber;

13: cout << Enter two numbers.\ nFirst: ;

14: cin >> firstNumber;

15: cout << \ nSecond: ;

16: cin secondNumber;

17: cout \ n\ n ;

19: if (firstNumber >= secondNumber) 20: {

21: if ( (firstNumber % secondNumber) == 0) evenly divisible? 22: {

23: if (firstNumber == secondNumber)

24: cout They яге the same!\ n ;

25: else

26: cout They are evenly divisible!\ n ;

27: } 28: else

29: cout They are not evenly divisible!\ n ;

30: } 31: else

32: cout Hey! The second one is larger!\ n ;

33: return 0; 34: }

Enter two numbers. First: 10



1 ... 20 21 22 [ 23 ] 24 25 26 ... 265

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