C Выбор вариантов

impuLse #IT

Администратор
Команда форума
Регистрация
12.03.2015
Сообщения
0
Репутация
447
Баллы
23
Уровень
0
Адрес
mySQL
Лучшие ответы
0
Зачем нужны ветвления?
В простейших программах все команды выполняются одна за другой последовательно.Так реализуются линейные алгоритмы. Однако часто надо выбрать тот или иной вариант действий в зависимости от некоторых условий: если условие верно, поступать одним способом, а если неверно — другим. Для этого используют разветвляющиеся алгоритмы, которые в языках программирования представлены в виде условных операторов. В языке Си существует два вида условных операторов:
  • оператор if — else для выбора из двух вариантов
  • оператор множественного выбора switch для выбора из нескольких вариантов
Условный оператор if — else
Задача: Ввести с клавиатуры два вещественных числа и определить наибольшее из них
По условию задачи нам надо вывести один из двух вариантов ответа: если первое число больше второго, то вывести на экран его, если нет — то второе число. Ниже показаны два варианта решения этой задачи: в первом результат сразу выводится на экран, а во втором наибольшее из двух чисел сначала записывается в третью переменную Max.
C:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
C:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
Что новенького?
  • Условный оператор имеет следующий вид:
    C:
    Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
  • Эта запись представляет собой единый оператор, поэтому между скобкой, завершающей блок «если» и словом else не могут находиться никакие операторы.
  • После слова else никогда НЕ ставится условие — блок «иначе» выполняется тогда, когда основное условие, указанное в скобках после if, ложно.
  • Если в блоке «если» или в блоке «иначе» только один оператор, то фигурные скобки можно не ставить.
  • В условии можно использовать знаки логических отношений

    > < больше, меньше
    >= <= больше или равно, меньше или равно
    == равно
    != не равно
  • В языке Си любое число, не равное нулю, обозначает истинное условие, а ноль — ложное условие.
  • Если в блоке «иначе» не надо ничего делать (например: «если в продаже есть мороженое, купи мороженое», а если нет ...), то весь блок «иначе» можно опустить и использовать сокращенную форму условного оператора:
    C:
    Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
    Например, решение предыдущей задачи могло бы выглядеть так:
    C:
    Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
    В блоки «если» и «иначе» могут входить любые другие операторы, в том числе и другие вложенные условные операторы; при этом оператор else относится к ближайшему предыдущему if:
    C:
    Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
  • Чтобы легче разобраться в программе, все блоки «если» и «иначе» (вместе с ограничивающими их скобками) сдвигаются вправо на 2-3 символа (запись «лесенкой»).
Сложные условия
Простейшие условия состоят из одного отношения (больше, меньше и т.д.). Иногда надо написать условие, в котором объединяются два или более простейших отношений. Например,
фирма отбирает сотрудников в возрасте от 25 до 40 лет (включительно). Тогда простейшая программа могла бы выглядеть так:
C:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
Что новенького?
  • Сложное условие состоит из двух или нескольких простых отношений, которые объединяются с помощью знаков логических операций:
    • операция И — требуется одновременное выполнение двух условий
      условие_1 && условие_2
      Эту операцию можно описать следующей таблицей (она называется таблицей истинности)
      условие_1 условие_2 условие_1 && условие_2
      ложно (0) ложно (0) ложно(0) [/B]
      ложно (0) истинно (1) ложно(0)
      истинно (1) ложно(0) ложно(0)
      истинно (1) истинно (1) истинно (1)
    • операция ИЛИ — требуется выполнение хотя бы одного из двух условий (или обоих сразу)
      условие_1 || условие_2
      Таблица истинности запишется в виде
      условие_1 условие_2 условие_1 || условие_2
      ложно (0) ложно (0) ложно(0) [/B]
      ложно (0) истинно (1) истинно (1)
      истинно (1) ложно(0) истинно (1)
      истинно (1) истинно (1) истинно (1)
    • в сложных условиях иногда используется операция НЕ — отрицание условия (или обратное условие)
      ! условие
      Например, следующие два условия равносильны
      C:
      Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
  • Порядок выполнения (приоритет) логических операций и отношений:
    • операции в скобках, затем
    • операция НЕ, затем
    • логические отношения >, <, >=, <=, ==, !=, затем
    • операция И, затем
    • операций ИЛИ
  • Для изменения порядка действий используются круглые скобки.
 

Больше тем этой же категории

Sovetnik

Пользователь
Регистрация
31.03.2016
Сообщения
0
Репутация
2
Баллы
0
Уровень
0
Лучшие ответы
0
impuLse #IT, код немного недоработан. printf не выводит слова написанные на кириллице без одной маленькой фичи.
нужно добавить после int main - > setlocale(0,"");
Без этого программа будет выводить иероглифы и прочий мусор. :pardon:
 
  • Мне нравиться
Реакции: jNurlan

impuLse #IT

Администратор
Команда форума
Регистрация
12.03.2015
Сообщения
0
Репутация
447
Баллы
23
Уровень
0
Адрес
mySQL
Лучшие ответы
0
impuLse #IT, код немного недоработан. printf не выводит слова написанные на кириллице без одной маленькой фичи.
нужно добавить после int main - > setlocale(0,"");
Без этого программа будет выводить иероглифы и прочий мусор. :pardon:
Спасибо что предупредили , создал отдельную тему для setlocale .