Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание программ на С++.doc
Скачиваний:
15
Добавлен:
29.09.2019
Размер:
1.59 Mб
Скачать

If (условие_истинно) оператор; else оператор;

Когда программе требуется выполнить несколько операторов, если условие ложно или истинно, вы должны сгруппировать связанные операторы внутри левой и правой фигурных скобок {}:

If (условие_истинно)

   {        первый_оператор_для_истины;        второй_оператор_для_истины;     }  else     {        первый_оператор_для_лжи;        второй_оператор_для_лжи;     }

Использование отступов для улучшения удобочитаемости вашей программы

Рассматривая программы, представленные в этой главе, вы увидите, что в них применяются отступы перед операторами, которые следуют за if, elseили левой скобкой. Сдвигая подобным образом свои операторы на одну или две позиции, вы упрощаете процесс чтения ваших программ, выделяя связанные группы операторов, как показано ниже:

if (test_score >= 90)

   {          cout << "Поздравляем, вы получили А!" << endl;          cout << "Ваши тестовые очки были " << test_score << endl;      }  else     {          cout << "Вы должны работать усерднее!" << endl;          cout << "Вы потеряли " << 100 - test_score << " очков " << endl;     }

При создании программ используйте подобные отступы, чтобы программы были более удобочитаемыми. Отступы нужны не C++, а программистам, которые будут читать и пытаться понять ваш код.

Проверка двух или более условий

Как вы уже знаете, оператор if позволяет программам проверять определенные условия. По мере усложнения ваших программ возникает необходимость в проверке сразу нескольких условий. Например, программа могла бы проверить, будут ли тестовые очки больше или равны 90, и получит ли студент оценку А. Подобно этому, вы могли бы проверить, есть ли у пользователя собака и долматин ли это. Для выполнения таких проверок можно использовать логическую операцию C++ И (&&). Кроме того, если вы хотите проверить, есть ли у пользователя собака или кошка, вам следует использовать логическую операцию ИЛИ (||). Если программы для проверки нескольких условий используют логические операции И или ИЛИ, поместите каждое условие внутри круглых скобок, как показано ниже:

if ((user_owns_a_dog) && (dog == dalmatian)) //------------->Полное условие

Как видите, программа группирует каждое условие внутри своих собственных круглых скобок, которые затем заключаются во внешние круглые скобки.

if ((user_owns_a_dog) && (dog == dalmatian))

Когда ваша программа использует логическую операцию И (&&), то результат полного условия является истинным, только если все проверяемые условия истинны. Если какое-либо условие ложно, то полное условие становится ложным. Например, если у пользователя нет собаки, то предыдущее условие является ложным. Подобно этому, если собака пользователя не долматин, условие является ложным. Чтобы условие было истинным, у пользователя должна быть собака и она должна быть породы долматин. Следующий оператор использует логическую операцию ИЛИ (||), чтобы определить, есть ли у пользователя собака или кошка:

if ((user_owns_a_dog) || (user_owns_a_cat))

При использовании логической операции ИЛИ полное условие будет истинным, если хотя бы одно условие является истинным. Например, если у пользователя есть собака, условие истинно. Если у пользователя есть кошка, условие истинно. Подобно этому, если у пользователя есть и собака, и кошка, условие истинно. Условие будет ложным только в том случае, если у пользователя нет ни собаки, ни кошки.

В C++ истина представляется как ненулевое значение, а ложь как 0

Достоинством C++ является то, что истина представляется как любое ненулевое значение, а ложь как 0. Предположим, ваша программа использует переменную с именем user_owns_a_dog, чтобы определить, есть ли у пользователя собака или нет. Если у пользователя нет собаки, вы можете присвоить этой переменной значение 0 (ложь), как показано ниже:

user_owns_a_dog = 0;

Если у пользователя есть собака, вы можете присвоить этой переменной любое ненулевое значение, например 1:

user_owns_a_dog = 1;

Затем ваши программы могут проверить эту переменную, используя оператор if, как показано ниже:

if (user_owns_a_dog)

Если переменная содержит ненулевое значение, условие оценивается как истина; в противном случае, если переменная содержит 0, условие ложно. Исходя из того, как C++ представляет истину и ложь, предыдущий оператор идентичен следующему:

if (user_owns_a_dog == 1)

Следующая программа DOG_CAT.CPP использует переменныеuser_owns_a_dog и user_owns_a_cat внутри оператора if, чтобы определить, какие животные есть у пользователя.

#include <iostream.h>

void main(void)

{     int user_owns_a_dog = 1;     int user_owns_a_cat = 0;     if (user_owns_a_dog)         cout << "Собаки великолепны" << endl;     if (user_owns_a_cat)         cout << "Кошки великолепны" << endl;     if ((user_owns_a_dog) && (user_owns_a_cat))         cout << "Собаки и кошки могут ужиться" << endl;     if {(user_owns_a_dog) II (user_owns_a_cat))         cout << "Домашние животные великолепны!" << endl;  }

Экспериментируйте с этой программой, присваивая обоим переменным значение 1 или 0, а затем одной 1, а другой 0 и наоборот. Как видите, проверить два условия очень легко, используя логические операции И и ИЛИ.

Использование операции НЕ в C++

Вы уже знаете, что, когда программа проверяет определенное условие, в ряде случаев она должна выполнить некоторые операторы, если это условие истинно. С другой стороны, вам может потребоваться, чтобы программа выполнила операторы, если условие является не истинным. Операция C++ НЕ — восклицательный знак (!) — позволяет вашим программам проверить, является ли условие не истинным. Например, следующий оператор проверяет, нет ли у пользователя собаки:

if (! user_owns_a_dog)     cout << "вы должны купить собаку" << endl;

Операция НЕ превращает ложь в истину, а истину в ложь. Например, предположим, что у пользователя нет собаки. Следовательно, переменнаяuser_owns_a_dog должна содержать значение 0. Если C++ оценивает условие с Помощью операции НЕ, он использует текущее значение переменной (0) и применяет операцию НЕ. Операция НЕ превращает значение 0 в 1 (истину). Таким образом, полное условие превращается в истину и выполняется соответствующий оператор.

Следующая программа USE_NOT.CPP иллюстрирует использование операции НЕ:

#include <iostream.h>

void main(void)

{     int user_owns_a_dog = 0;     int user_owns_a_cat = 1;     if (! user_owns_a_dog)        cout << "Вы должны купить собаку" << endl;     if (! user_owns_a_cat)        cout << "Вы должны купить кошку" << endl;  }

Как и раньше, экспериментируйте со значениями, присваиваемыми переменным user_owns_a_dog и user_owns_a_cat, и обратите внимание на поведение программы. По мере усложнения ваших программ вы будете постоянно использовать операцию НЕ. Например, ваша программа может продолжать повторять обработку, пока не встретит конец файла.

Использование логических операций C++

Если вы указываете условия в программах, то иногда эти условия будут состоять из нескольких частей. Например, ваша программа может проверять, имеет ли служащий почасовую оплату и работал ли он более 40 часов на этой неделе. Если для истинности условия каждая из двух его частей должна быть истиной, вам следует использовать операцию C++ И (&&). При ,использовании операции И группируйте каждое условие внутри круглых скобок, а затем оба условия заключите в еще одну пару круглых скобок, как показано ниже:

if ((employee_pay == hourly) && (employee_hours > 40))      оператор;

Когда необходимо, чтобы условие было истинным, если только одна из его частей истинна, вам следует использовать операцию C++ ИЛИ (|[). Например, следующее условие проверяет, есть ли у пользователя машина или мотоцикл:

if ((vehicle == car) II (vehicle == motorcycle))      оператор;

Как и ранее, программа группирует каждое условие внутри скобок. В ряде случаев вам потребуется, чтобы ваши программы выполняли оператор, если условие является не истинным. В таких случаях следует использовать операцию C++ НЕ (!). Операция НЕ превращает истину в ложь, а ложь в истину.

Операции C++ И, ИЛИ и НЕ представляют собой логические операции.