Оператор выбора if в языке C

Способность управлять программным потоком позволяет делать выборочное выполнение отдельных участков кода, а это весьма ценная особенность программирования. Оператор выбора if  позволяет нам выполнять или не выполнять определенные участки кода ,в зависимости от того является ли истинным или ложным условие этого оператора. Одно из самых важных назначений оператора выбора if так это то, что он позволяет программе совершить действие на выбор, в зависимости от того, какие данные ввел пользователь. Банальный пример использования if — это проверка введенного пользователем пароля, если пароль правильный, программа разрешает пользователю совершить какое-то действие, если пароль введен неправильный, то программа не позволит пользователю получить доступ к ограниченным ресурсам.

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

Перед тем как начать разбираться в структуре оператора if, стоит обратить внимание на такие значения как ИСТИНА и ЛОЖЬ в контексте программирования и компьютерной терминологии.

Истинное значение (ИСТИНА) имеет значение отличное от нуля, ЛОЖЬ эквивалентна нулю. При использовании операторов сравнения, оператор будет возвращать единицу, если выражение сравнения — истинно, или — 0, если условное выражение ложно. Например, выражение 3 == 2 вернет значение 0, так как три не равно двум. Выражение 5 == 5 оценивается как истинное и вернет значение 1. Если вам сложно это понять, попробуйте сделать вывод на экран этих выражений, например:  printf ( "%d", 7 == 0 );

В процессе программирования, часто приходится сравнивать одни переменные с другими и на основе этих сравнений управлять программным потоком. Есть цэлый список операторов, который позволяет выполнять сравнения, вот он:

== равно  5 == 5 это истина
 !=  не равно  3 != 2 и это истина
 >  больше  7 > 6 — истина
 >=  больше или равно  1 >= 1 истина
 <  меньше  5 < 5 — ложь
 <=  меньше или равно  3 <= 2 — ложь

Скорее всего вы знакомы с этими операторами сравнения, но на всякий случай, я показал их в таблице выше. Они не должны быть сложными для вашего понимания, большинство из этих операторов вы изучили в школе на уроках математики. Теперь вы понимаете, что такое ИСТИНА и ЛОЖЬ, пора испытать оператор выбора if в бою. Структура if:

if ( условное выражение ) 
   // тут располагается один оператор, который выполнится, если условное выражение - истинно

Вот вам простой пример использования оператора if:

if ( 7 > 6 )
    printf( "Семь больше шести" );

В этом примере программа оценивает условное выражение — «семь больше шести?» Чтобы увидеть результат работы этого фрагмента кода просто вставьте его в функцию main() и не забудьте включить заголовок stdio.h, запускаем программу и видим результат — true. Конструкция оператора выбора if c фигурными скобочками:

if ( TRUE ) {
    /* весь код который помещен внутрь скобок - выполнится */
}

Если не использовать фигурные скобочки, то к телу оператора if будет относиться только один, первый оператор. Если же необходимо управлять несколькими операторами, то необходимо поместить их в фигурные скобочки. Я рекомендую всегда ставить скобки, после объявления if — это хороший тон программирования и вы никогда не запутаетесь в своем коде, так как такое объявление наиболее понятное.

Оператор else

Иногда, когда условное выражение — ложное, было бы удобно, чтобы выполнялся некоторый код, отличный от того кода ,который выполняется при ИСТИННОМ условии. Как же это делается?
Вот пример использования оператора if else:

if ( TRUE ) {
    /* выполняется этот код ,если условие истинно  */
}
else {
    /* выполняется этот код ,если условие ложно  */
}

Конструкция else if

Обычно операторы else if используют, когда необходим множественный выбор, то есть например определены несколько условий, которые одновременно могут быть истинными, но нам необходимо только одно истинное условное выражение. Вы можете использовать оператор if else сразу после оператора выбора if, после его тела. В таком случае, если условие первого оператора выбора — ИСТИННО, тогда конструкция else if будет игнорироваться, тогда как в противном случае, если условие первого оператора выбора — ЛОЖНО, начнет выполнятся проверка в конструкции else if. То есть если условие одного оператора if будет истинно, то другие проверяться не будут. Теперь чтобы все это хорошо закрепить в голове и понять, давайте рассмотрим простой пример с использование конструкций операторов выбора.

#include <stdio.h>      
#include <stdlib.h>
int main()
{
    int age;                             // без переменной никак...

    printf( "Сколько вам лет? " );       // спрашиваем пользователя о его возрасте
    scanf( "%d", &age );                 // ввод пользователем количества лет
    if ( age < 100 ) {                   // если введенный возраст меньше 100
        printf ("Вы очень молоды!\n" );  // просто показываем что программа сработала верно...
    }
    else if ( age == 100 ) {             // используем else для примера
        printf( "Молодость уже позади\n" ); // \n - символ перевода на новую строку.
    }
    else {
        printf( "Столько не живут\n" );  // если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа
    }
  return 0;
}

Рассмотрим интересные условные выражения с использование логических операторов.

Логические операторы позволяют создавать более сложные условные выражения. Например, если вы хотите проверить, является ли ваша переменная больше 0 но меньше 10, в таком случае вам достаточно воспользоваться логическим оператором — И. Вот так это делается — var > 0 and var < 10. В языке СИ есть точно такой же же оператор, только обозначается он иначе — &&.
При использовании операторов if часто необходимо проверить несколько различных условий, поэтому очень важно понимать логические операторы OR, NOT и AND. Логические операторы работают точно так же как и операторы сравнения: они возвращают 0, если имеют ложное значение или 1, если логическое выражение — истинное.
Подробнее о логических операциях вы можете прочитать в этом разделе по С++.

Практика

К сожалению, для данной темы пока нет подходящих задач. Если у вас есть таковые на примете, отправте их по адресу: admin@cppstudio.com. Мы их опубликуем!

Автор: Marienko L.
Дата: 22.10.2013
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.