Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поляков_ Программирование на языке Си / К.Поляков Программирование на языке Си.doc
Скачиваний:
136
Добавлен:
17.03.2018
Размер:
470.02 Кб
Скачать

I. Введение в программирование © к. Поляков, 1995-2009

http://kpolyakov.narod.ru

16

В блоки «если» и «иначе» могут входить любые другие операторы, в том числе и другие

вложенные условные операторы; при этом оператор else относится к ближайшему пре-

дыдущему if:

if ( A > 10 )

if ( A > 100 )

printf ( "У вас очень много денег." );

else

printf ( "У вас достаточно денег." );

else

printf ( "У вас маловато денег." );

Чтобы легче разобраться в программе, все блоки «если» и «иначе» (вместе с ограничи-

вающими их скобками) сдвигаются вправо на 2-3 символа (запись «лесенкой»).

􀀕 Сложные условия

Простейшие условия состоят из одного отношения (больше, меньше и т.д.). Иногда надо

написать условие, в котором объединяются два или более простейших отношений. Например,

фирма отбирает сотрудников в возрасте от 25 до 40 лет (вклчительно). Тогда простейшая про-

грамма могла бы выглядеть так:

#include <stdio.h>

#include <conio.h>

main()

{

int age;

printf ( "\nВведите ваш возраст: " );

scanf ( "%d", &age );

if ( 25 <= age && age <= 40 ) // сложное условие

printf ( "Вы нам подходите." );

else

printf ( "Извините, Вы нам не подходите." );

getch();

}

􀀗 Что новенького?

Сложное условие состоит из двух или нескольких простых отношений, которые объеди-

няются с помощью знаков логических операций:

o операция И — требуется одновременное выполнение двух условий

условие_1 && условие_2

Эту операцию можно описать следующей таблицей (она называется таблицей истин-

ности)

условие_1 условие_2 условие_1 && условие_1

ложно (0) ложно (0) ложно(0)

ложно (0) истинно (1) ложно(0)

истинно (1) ложно (0) ложно(0)

истинно (1) истинно (1) истинно (1)

Программирование на языке Си. © К. Поляков, 1995-2009

http://kpolyakov.narod.ru

17

o операция ИЛИ — требуется выполнение хотя бы одного из двух условий (или обоих

сразу)

условие_1 || условие_2

Таблица истинности запишется в виде

условие_1 условие_2 условие_1 || условие_1

ложно (0) ложно (0) ложно(0)

ложно (0) истинно (1) истинно (1)

истинно (1) ложно (0) истинно (1)

истинно (1) истинно (1) истинно (1)

o в сложных условиях иногда используется операция НЕ — отрицание условия (или об-

ратное условие)

! условие

_____________Например, следующие два условия равносильны

A > B ! ( A <= B )

Порядок выполнения (приоритет) логических операций и отношений:

o операции в скобках, затем

o операция НЕ, затем

o логические отношения >, <, >=, <=, ==, !=, затем

o операция И, затем

o операций ИЛИ

Для изменения порядка действий используются круглые скобки.

􀀕 Переключатель switch (множественный выбор)

Если надо выбрать один из нескольких вариантов в зависимости от значения некоторой

целой или символьной переменной, можно использовать несколько вложенных операторов if,

но значительно удобнее использовать специальный оператор switch.

Задача. Составить программу, которая вводит с клавиатуры русскую букву и выводит на эк-

ран название животного на эту букву.

#include <stdio.h>

#include <conio.h>

main()

{

char c;

printf("\nВведите первую букву:");

scanf("%c", &c); // ввести букву

switch ( c ) // заголовок оператора выбора

{

case 'а': printf("\nАнтилопа"); break;

case 'б': printf("\nБарсук"); break;

case 'в': printf("\nВолк"); break;

default: printf("\nНе знаю я таких!"); // по умолчанию

}

getch();

}