Оператор if в си: Оператор if (C) | Microsoft Docs

Содержание

Оператор if полная форма в C++. Урок4.

На прошлом занятии мы проходили неполную форму оператора if, сегодня пришло время познакомиться с его полной формой. Полная форма условного оператора позволяет нам решать задачи гораздо проще, чем мы умеем это делать на данный момент.

Полная форма условного оператора

Если условие истинно, то выполнить действия первой ветки. Иначе выполнить действия второй ветки.

Раньше мы говорили с вами: Наше условие вернуло нам единицу (true), тогда мы выполняли необходимые нам действия. А если условие было false, то мы ничего не делали.

Пора исправить ситуацию.

Синтаксис

Первую часть мы уже знаем. Но обратите внимание, у нас появилось еще одно слово «else». Else – иначе или в противном случае. То есть мы говорим программе, что мы будем делать другие действия, если логическое выражение вернет нам false.

Рассмотрим на примере

Дано количество очков, которое набрал лучник. Если это количество превысило 100, он выиграл, иначе – проиграл.

  1. Мы с вами создаем переменную score;
  2. Внутрь переменной заносим значение с клавиатуры;
  3. Пишем условие и говорим: Если лучник набрал больше 100 очков, то он победил.

Если он набрал меньше 100 очков, проиграл. И выводим результат на экран.

Приведение типов

Посмотрите на картинку выше. Мы в условии записали: «Если score». И больше ничего, что это означает? Ведь мы сравнивать можем только логические выражения?
В данном случае наша конструкция аналогична тому, что наша переменная score не равна 0. И если она не равна нулю, то любое значение будет иметь true и наша программа начнет выполнять те действия, которые необходимо выполнить при true.

Любое число кроме 0 – это true.

Таким образом мы говорим, если наше число не нулевое – это true.

Соответственно в обратную сторону это тоже работает

Если наше число равно нулю – это false.

Решение задач

Пятью пять – двадцать пять!

Вася и Петя учатся в школе в одном классе. Недавно Петя поведал Васе о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь Вася может с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5. Способ заключается в следующем: для возведения в квадрат числа, оканчивающегося на 5 достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа. Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625. Напишите программу, возводящую число, оканчивающееся на 5, в квадрат для того, чтобы Вася смог проверить свои навыки.

Входные данные

В единственной строке входного файла INPUT.TXT записано одно натуральное число А, оканчивающееся на цифру 5, не превышающее 4*10

5.

Примеры
входные данные
5
75
4255
выходные данные
25
5625
18105025

Удача

Если число, введенное с клавиатуры, четырехзначное и делится на 5, то выведите слово «SUCCESS», а иначе — «FAILURE».

Формат входных данных
Вводится одно целое число a (−23131−1).
Формат выходных данных
Требуется вывести одно из слов.
Примеры
входные данные
42
4245
выходные данные
FAILURE
SUCCESS

Видео по теме урока

4. Операторы управления в С/С Условный оператор if Оператор if реализует условный блок (рис. 4.1).

Изучение условного оператора IF.

Изучение условного оператора IF. Данная тема является одним из трех китов, на которых стоит программирование на языке Pascal. Без ее изучения невозможно дальнейшее программирование. Она помогает при решении

Подробнее

Лабораторная работа 4

Лабораторная работа 4 Цель: Лабораторная работа предназначена для приобретения практического опыта в создании приложения с использованием языка программирования С++ для математических расчѐтов. Призвана:

Подробнее

Лабораторная работа 2. Условный оператор IF

Лабораторная работа 2 Условный оператор IF 1 ЦЕЛЬ РАБОТЫ: приобретение практических навыков в составлении алгоритмов и программ разветвленной структуры. 2 ОСНОВНЫЕ СВЕДЕНИЯ Алгоритм разветвленной структуры

Подробнее

Структура программ, управление

46 В.Л. Тарасов Лекции по программированию на C++ Лекция 3 Структура программ, управление 3.1. Состав программы Программа на языке C++ состоит из функций и переменных. Среди функций любой программы должна

Подробнее

Практическая работа 29

Практическая работа 9 Тема: Составление программ разветвляющейся структуры. Использование управляющей структуры IF Then. Цель: Научиться составлять простейшие программы на языке Object Pascal в среде Delphi

Подробнее

Операторы в JAVA. Лекция 4

Лекция 4 Операторы в JAVA Ввод информации с клавиатуры Проще всего вводить числа с клавиатуры, пользуясь классом Scanner. Этот класс принадлежит пакету java.util. Следовательно, чтобы использовать его

Подробнее

Лабораторная работа 6

Лабораторная работа 6 Понятие оператора. Составной оператор. Условный оператор. Цель — изучить основные операторы Jv-программ. Основные понятия Программам, получающим от внешнего мира какие-то данные,

Подробнее

ОСНОВЫ ПРОГРАММИРОВАНИЯ

Университет «Дубна» Дмитровский институт непрерывного образования Специальность 09.0.03. «Программирование в компьютерных системах» ОСНОВЫ ПРОГРАММИРОВАНИЯ С++ ПРАКТИКУМ 1 часть Объявление и инициализация

Подробнее

Задача A. Игра. Решение.

Задача A. Игра В этой задаче самое сложное — это понять, что нужно сделать. Сама задача очень проста и сводится к тому, чтобы считать одну цифру x от 1 до 9, а затем вывести три цифры: x, 9 и 9-x. Здесь

Подробнее

Занятие 1. Знакомство с С++

Занятие 1. Знакомство с С++ 1. Вывод данных на экран. Ниже приведен пример программы «Hello, World». Измените программу таким образом, чтобы она выводила ваши фамилию, имя, возраст, хобби. Для подключения

Подробнее

ОПЕРАТОРЫ ЯЗЫКА C# Операторы следования

ОПЕРАТОРЫ ЯЗЫКА C# Программа на языке С# состоит из последовательности операторов, каждый из которых определяет законченное описание некоторого действия и заканчивается точкой с запятой. Все операторы

Подробнее

Лабораторная работа 1

Лабораторная работа 1 Базовые конструкции языка С/С++. Вычисление выражений с использованием стандартных функций 1. Цель задания: 1) Выполнение программы в системе программирования ) Приобретение навыков

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Программирование на С/С++ (ч.2 типы данных) Беркунский Е.Ю., кафедра ИУСТ, НУК [email protected] http://berkut.mk.ua Типы данных в C++ Тип Размер Диапазон значений

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Программирование на С/С++ (ч.2 типы данных) Беркунский Е.Ю., кафедра ИУСТ, НУК [email protected] http://berkut.homelinux.com Типы данных Тип Размер Диапазон значений

Подробнее

Тема урока Условный оператор. Цель урока:

стр. 1 из 15 Тема урока Условный оператор Цель урока: 1. Образовательные: Познакомиться с новым типом оператора языка Turbo Pascal условный оператор, его особенностями исполнения. Обеспечить усвоение учащимися

Подробнее

Лабораторная работа 3.3

Лабораторная работа. ЛОГИЧЕСКИЕ ПЕРЕМЕННЫЕ И ФУНКЦИИ Задание 1. Напишите формулу, которая определяет, принадлежит ли заданное число Х отрезку [a, b]. В ячейки A и В введем числовые значения для отрезка

Подробнее

Лабораторная работа 6. Функции в С++

Лабораторная работа 6 Функции в С++ 1. Цель работы: 1) Получить практические навыки работы с функциями; 2) получить практические навыки работы с шаблонами функций; 3) получить практические навыки работы

Подробнее

C++Tutorial. Authors: Andrey Bulatov & Yuri Butenko

C++Tutorial Authors: Andrey Bulatov & Yuri Butenko Полезная информация Подробное руководство по программированию на C++: https://metanit.com/cpp/tutorial/1.1.php Николас А. Солтер, Скот Дж. Кеплер «C++

Подробнее

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++

АКАДЕМИЯ ПОСЛЕДИПЛОМНОГО ОБРАЗОВАНИЯ Кафедра информатики БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МЕХАНИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ Кафедра численных методов и программирования Н. А. Аленский ОСНОВЫ ПРОГРАММИРОВАНИЯ

Подробнее

Основы программирования на языке Python

Основы программирования на языке Python Основные типы данных 2 Основные числовые операции 3 Основные логические операции 4 Основные функции 5 Инструкция ветвления 7 Циклы 8 Функции 10 Списки 11 Основные

Подробнее

Лекция 2. Основные типы данных

Лекция 2 Рыбалка С.А., Шкатова Г.И. Лекции по C++ Основные типы данных Основным средством хранения данных, обрабатываемых программой, являются ячейки памяти. Вся память компьютера является однородной и

Подробнее

program LAB1 read (*, *) x res=(2*x**2 + 3.)*sin (x) + exp (x**3 + 1.)

Лабораторная работа 1 Разработка простейших программ Общие сведения Для выполнения лабораторной работы необходимо изучить теоретический материал по следующим разделам: 1. базовые конструкции языка Фортран

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Программирование на С/С++ (ч.12 указатели) Беркунский Е.Ю., кафедра ИУСТ, НУК [email protected] http://www.berkut.mk.ua Указатели Указатель переменная, значением

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Программирование на С/С++ (ч.12 указатели) Беркунский Е.Ю., кафедра ИУСТ, НУК [email protected] http://berkut.homelinux.com Указатели Указатель переменная, значением

Подробнее

МЕТОДИЧНІ ВКАЗІВКИ до лабораторних робіт

Міністерство освіти і науки України Харківський національний автомобільно-дорожній університет Кафедра інформаційних технологій та мехатроніки МЕТОДИЧНІ ВКАЗІВКИ до лабораторних робіт Програмування на

Подробнее

Алгоритмы с ветвящейся структурой

Алгоритмы с ветвящейся структурой Рассмотрим несколько задач, решение которых на компьютере получается с помощью ветвящихся алгоритмов. Первая задача: даны два числа, выбрать наибольшее из них. Пусть исходными

Подробнее

Язык программирования Си

Язык программирования Си Бикулов Д.А., Иваницкая Н.В., Иванов А.П. Семинар 2. Основы синтаксиса языка Си. Типы данных. Определение переменных и констант. Правила видимости. Условный оператор, циклы и операторы

Подробнее

5. ПОСЛЕДОВАТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ

5. ПОСЛЕДОВАТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ 5.1. Приемы последовательной обработки данных В ряде задач последовательность элементов исходных данных вводится и обрабатывается по одному элементу в том порядке,

Подробнее

Основы программирования на языке Pascal

Основы программирования на языке Pascal Структура программы 2 Основные типы данных 3 Основные операторы 4 Основные логические операторы 5 Структура условного оператора 6 Циклические операторы 7 Массивы

Подробнее

Объявление функций в С/С++

Объявление функций в С/С++ Описание функций в отдельных файлах В С++ существует возможность поместить объявления функций в отдельный файл, тогда необходимо будет подключать файл с функциями, как в случае

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Программирование на С/С++ (ч.12 указатели) Беркунский Е.Ю., кафедра ИУСТ, НУК [email protected] http://www.berkut.mk.ua Указатели Указатель переменная, значением

Подробнее

Условная инструкция

Условная инструкция

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

Допустим мы хотим по данному числу x определить его абсолютную величину (модуль). Для этого необходимо нарушить линейную логику программы. Программа должна напечатать значение переменной x, если x>0 или же величину -x в противном случае. Линейная структура программы нарушается: в зависимости от справедливости условия x>0 должна быть выведена одна или другая величина. Соответствующий фрагмент программы на C++ имеет вид:

    int x;
    cin >> x;
    if (x > 0)
    {
        cout << x << endl;
    }
    else
    {
        cout << -x << endl;
    }
    return 0;

В этой программе используется условная инструкция if (если). После слова if в обязательных круглых скобках указывается проверяемое условие (x > 0). После этого в фигурных скобках идет блок (последовательность) инструкций, который будет выполнен, если условие истинно, в нашем примере это вывод на экран величины x. Затем идет слово else (иначе) и после него блок инструкций, который будет выполнен, если проверяемое условие неверно, в данном случае будет выведено значение -x.

Итак, условная инструкция в C++ имеет следующий синтаксис:

    if (Условие)
    {
        Блок инструкций 1
    }
    else
    {
        Блок инструкций 2
    }

Блок инструкций 1 будет выполнен, если Условие истинно. Если Условие ложно, будет выполнен Блок инструкций 2.

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

    if (x < 0)
    {
        x = -x;
    }

В этом примере переменной x будет присвоено значение -x, но только в том случае, когда x<0.

Вложенные условные инструкции

Внутри условных инструкций можно использовать любые инструкции языка C++, в том числе и условную инструкцию. Получаем вложенное ветвление – после одной развилки в ходе исполнения программы появляется другая развилка. Покажем это на примере программы, которая по данным ненулевым числам x и y определяет, в какой из четвертей координатной плоскости находится точка (x,y):

    int x, y;
    cin >> x >> y;
    if (x > 0)
    {
        if (y > 0)   // x>0, y>0
        {
            cout << "Первая четверть" << endl;
        }
        else            // x>0, y<0
        {
            cout << "Четвертая четверть" << endl;
        }
    }
    else
    {
        if (y > 0)   // x<0, y>0
        {
            cout << "Вторая четверть" << endl;
        }
        else            // x<0, y<0
        {
            cout << "Третья четверть" << endl;
        }
    }

В этом примере мы использовали комментарии – текст, который компилятор игнорирует. Комментариями в C++ является последовательность символов // и весь текст после этого символа до конца строки. Обратите также внимание на отступы в начале строк, используемые для облегчения понимания текста.

Операторы сравнения

В качестве проверяемого условия должно использоваться выражение логического типа bool. Переменные логического типа принимают два значения: true (истина) и false (ложь). Также любое целочисленное выражение можно трактовать, как логическое выражение, при этом нулевое целое число означает ложь, а ненулевое — истину. Таким образом, если вместо условия написать false или 0, то оно будет всегда ложно, если же указать true, 1 или любое ненулевое число, то условие будет истинно.

Как правило, в качестве проверяемого условия используется результат вычисления одного из следующих операторов сравнения:

<
Меньше — возвращает true, если первый операнд меньше второго.
>
Больше — возвращает true, если первый операнд больше второго.
<=
Меньше или равно.
>=
Больше или равно.
==
Равенство. Возвращает true, если два операнда равны.
!=
Неравенство. Возвращает true, если два операнда неравны.

Например, условие (x * x < 1000) означает “значение x * x меньше 1000”, а условие (2 * x != y) означает “удвоенное значение переменной x не равно значению переменной y”.

Будьте аккуратны: оператор == (два знака равенства) — это проверка на равенство двух выражений, а оператор = (один знак равенства) — это присваивание одной переменной значения выражения и использование его в условии оператора ветвления в большинстве случаев является ошибкой.

Рассмотрим эту типичную ошибку на следующем примере:

    int a, b;
    cin >> a >> b;
    if (a = b)
    {
        cout << "Числа равны" << endl;
    }
    else
    {
        cout << "Числа не равны" << endl;
    }

Здесь по ошибке вместо операции сравнения == использована операция присваивания =. Поэтому при любых значениях a и b переменной a будет присвоено значение переменной b, при проверке истинности выражения a = b. Но оператор присваивания еще и возвращает значение, поэтому если значение b было ненулевым (а это интерпретируется, как истина), то программа выведет строку «Числа равны», а если нулевым — то строку «Числа не равны». При этом значение переменной a может быть вообще любым.

3.3 Логические операторы

Иногда нужно проверить одновременно не одно, а несколько условий. Например, проверить, является ли данное число четным можно при помощи условия (n % 2 == 0) (остаток от деления n на 2 равен 0), а если необходимо проверить, что два данных целых числа n и m являются четными, необходимо проверить справедливость обоих условий: n % 2 == 0 и m % 2 == 0, для чего их необходимо объединить при помощи оператора && (логическое И): n % 2 == 0 && m % 2 == 0.

В C++ существуют стандартные логические операторы: логическое И, логическое ИЛИ, логическое отрицание.

Логическое И является бинарным оператором (то есть оператором с двумя операндами: левым и правым) и имеет вид && (два знака амперсанда). Оператор && возвращает true тогда и только тогда, когда оба его операнда имеют значение true.

Логическое ИЛИ является бинарным оператором и возвращает true тогда и только тогда, когда хотя бы один операнд равен true. Оператор “логическое ИЛИ” имеет вид || (два знака вертикальной черты).

Логическое НЕ (отрицание) является унарным (то есть с одним операндом) оператором и имеет вид ! (восклицательный знак), за которым следует единственный операнд. Логическое НЕ возвращает true, если операнд равен false и наоборот.

Пример. Проверим, что хотя бы одно из чисел a или b оканчивается на 0:

    if (a % 10 == 0 || b % 10 == 0)

Проверим, что число a — положительное, а b — неотрицательное:

    if ((a > 0) && !(b < 0))

Или можно вместо !(b < 0) записать (b >= 0).

Другая типичная ошибка новичков — неверное использование двойных неравенств. Пусть нужно проверить, является ли введенное число score корректной школьной оценкой, то есть числом от 1 до 5. Правильное решение такое:

    if (score >= 1 && score <= 5)

А вот такая запись будет синтаксически верной, но работать будет неправильно:

    if (1 <= score <= 5)

Почему? Потому что в записи (1 <= score <= 5) два оператора сравнения. Они выполняются слева направо и скобки между ними расставляются так: ( (1 <= score) <= 5). Сначала выполняется первое сравнение: (1 <= score). Его результатом будет значение типа bool, то есть либо 0, либо 1. А на втором действии результат вычисления предыдущего выражения (то если либо 0, либо 1) сравнивается с числом 5. Поэтому итоговый результат всегда будет истинным, независимо от значения числа score.

Оператор if — WinAVR и AVR Studio — Програмирование — Инструкции

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

 
Оператор if может быть описан по одному из следующих шаблонов:
1. if (<проверка>) <оператор1>;
2. if (<проверка>) <оператор1>; else <оператор2>;
3. if (<проверка>) { <список операторов1 ;>}
4. if (<проверка>) { <список операторов1 ;>} else {список операторов2 ;}

 
Здесь проверка — это логическое выражение, проверяемое на истинность, оператор1 — оператор, выполняемый только в случае истинности проверки, оператор2 выполняется только в случае ложности проверки. Под списком операторов подразумевается любая последовательность любых операторов, причем, как и одиночные, эти списки выполняются лишь в соответствующем случае в зависимости от результата проверки.

 
Обратите внимание, что для 3 и 4 форм оператора if наличие завершающей оператор точки с запятой не является необходимым. В данном случае закрывающая фигурная скобка однозначно свидетельствует о завершении оператора, в то время как в списках каждый из операторов должен завершаться точкой с запятой (если, конечно, оператор в списке не ограничивается фигурными скобками).
Шаблоны оператора if не накладывают никаких ограничений на то, какие операторы могут быть на месте оператра1 или опера-тора2 или же в соответствующих списках. Это означает, что среди них так же может использоваться оператор if. В этом случае может возникнуть проблема с определением принадлежности части оператора else:

 
if (а < 2) if (с > 5) result = 5; else result = 0;

 
В этом примере стоит задуматься, к какому из операторов if относится часть else? Язык Си однозначно вводит следующее правило: всякий else относится к ближайшему предыдущему if, не имеющему своего else. Таким образом, в вышеприведенном примере else относится к оператору if(c > 5).
Очевидно, что запись оператора в одну строку не способствует улучшению восприятия программы. Благодаря тому, что язык Си допускает использование любых «пробельных» разделителей, гораздо более удачной следует считать следующую форму записи:

 

if (a < 2)

       if (c > 5)

               result = 5;

       else

               result = 0;

 
Благодаря использованию табуляций вышеприведенный пример даже визуально показывает принадлежность else соответствующему оператору if.

 
Следует отметить, что пример показывает одну из проблем, характерную для оператора if — так называемую неполную проверку вариантов. Она заключается в следующем: если, например, переменная а равна 5, то переменная result оказывается с неопределенным значением. Возможно, она получит (или получила) нужное значение в другом операторе, возможно переменная а никогда не получит значение больше 1 (но тогда, к чему вообще проверка?!), однако если это не так — проблем не миновать.

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

Заявление

if — cppreference.com

Условно выполняет код.

Используется, когда код должен выполняться, только если выполняется какое-то условие.

[править] Синтаксис

attr-spec-seq (необязательно) if ( выражение ) утверждение-истина (1)
attr-spec-seq (необязательно) if ( выражение ) утверждение-истина else утверждение-ложь (2)
attr-spec-seq (C23) необязательный список атрибутов, применяемых к if statement
выражение выражение любого скалярного типа
утверждение — правда любой оператор (часто составной оператор), который выполняется, если выражение сравнивается не равным 0
заявление-ложь любой оператор (часто составной оператор), который выполняется, если выражение сравнивается с 0

[править] Объяснение

Выражение

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

Если выражение сравнения не равно целому нулю, выполняется утверждение-истина.

В форме (2), если выражение сравнивается с целым нулем, выполняется statement_false.

Как и все другие операторы выбора и итерации, весь оператор if имеет свою собственную область видимости блока:

 enum {a, b};
int разный (недействительный)
{
    если (sizeof (перечисление {b, a})! = sizeof (int))
        вернуть; // a == 1
    return b; // b == 0 в C89, b == 1 в C99
} 
(начиная с C99)

[править] Примечания

else всегда ассоциируется с ближайшим предшествующим if (другими словами, if statement-true также является оператором if, тогда этот внутренний оператор if должен содержать также часть else ):

 int j = 1;
если (i> 1)
   если (j> 2)
       printf ("% d> 1 и% d> 2 \ n", i, j);
    else // это else является частью if (j> 2), а не частью if (i> 1)
       printf ("% d> 1 и% d <= 2 \ n", i, j); 

Если оператор-истина вводится через goto, оператор-ложь не выполняется.

[править] Ключевые слова

если, еще

[править] Пример

 #include 

int main (пусто)
{
    int я = 2;
    if (i> 2) {
        printf ("первое верно \ п");
    } еще {
        printf ("сначала ложь \ п");
    }

    я = 3;
    если (я == 3) printf ("я == 3 \ п");

    if (i! = 3) printf ("i! = 3 истинно \ n");
    иначе printf ("i! = 3 ложно \ n");
} 

Выход:

 сначала ложно
я == 3
i! = 3 ложно 

[править] Ссылки

Стандарт
  • C17 (ISO / IEC 9899: 2018):
  • 6.8.4.1 Оператор if (стр: 108-109)
  • стандарт C11 (ISO / IEC 9899: 2011):
  • 6.8.4.1 Оператор if (стр: 148-149)
    Стандарт
  • C99 (ISO / IEC 9899: 1999):
  • 6.8.4.1 Оператор if (стр: 133-134)
  • Стандарт C89 / C90 (ISO / IEC 9899: 1990):

[править] См. Также

C Programming Tutorial 47 - Как написать оператор If с логическими переменными

В прошлом блоге я говорил о том, как работают операторы if.В этом блоге мы напишем очень простой оператор if с переменной типа bool! Помните, что в нашем коде должен быть #include . Ты здесь новенький? Начните с самого начала, Введение в C!

Это работает и все такое, и вы можете видеть, что это добавляет уровень функциональности в нашу программу, но это действительно не так уж и круто. Вы можете видеть, что мы сами присваиваем значение true переменной bool, поэтому нам даже не понадобится это условное выражение. Мы знаем, что он будет запущен, поэтому можем просто распечатать то, что хотим напечатать, и удалить условное.

Вы должны понимать, что когда мы выпускаем наше программное обеспечение, мы не сможем постоянно изменять исходный код. Если я так верю в код, представьте, что он высечен на камне. Так зачем вообще использовать операторы if, если мы знаем, что они будут выполняться?

Прелесть этих условных выражений в том, что мы заранее не знаем ценности чего-либо. Чтобы ясно это увидеть, почему бы нам не написать программу, которая спрашивает пользователей, считают ли они, что пицца полезна, и, если они говорят «да», предоставляет им доступ к приложению.Теперь один из способов получить значение типа bool из консоли - это взять число и преобразовать его в значение типа bool.

Если они поставят 1, они получат одобрение, если они поставят 0, ничего не произойдет.

Давай попробуем!

Вы можете видеть, что все работает, как ожидалось, но что будет, если мы поставим что-то вроде 20?

Ну, если вы помните, переменные типа bool хранят данные как 0 или 1. Все, что не 0, сохраняется как 1.

Аналогичный принцип применяется, когда дело доходит до операторов if.Что делать, если в выражении оператора if у нас нет простой переменной true или false, а есть число:

Если подумать легче, представьте себе это так:

Это не так ясно, потому что значение уже не истинно или ложно. Мы, как разработчики программного обеспечения, должны знать, что язык программирования интерпретирует как истину или ложь. В языке C любое ненулевое число считается истинным. Итак, блок кода будет выполнен.

Теперь мы понимаем, как оценивать простые выражения, но что, если бы мы хотели сделать что-то вроде создания приложения, которое позволяет людям вводить число, и мы хотим проверить, находится ли это число выше или ниже определенного значения?

Это немного сложнее, потому что для них требуется особый тип оператора, известный как оператор отношения, или то, что некоторые люди называют оператором сравнения.Об этом мы и поговорим в следующем видео, до встречи!

Готовы узнать больше? Прочтите следующий блог о хороших методах кодирования!

Оператор If в программировании на C с примерами

Мы можем видеть, как и большинство других языков; C использует ключевое слово if для реализации инструкции управления принятием решения. Общая форма оператора if выглядит как в примере ниже.

 если (это условие верно)
выполнить это заявление; 

Ключевое слово Если оператор C сообщает компилятору, что далее следует инструкция управления принятием решения.Условие после ключевого слова if всегда заключено в пару круглых скобок. Если условие, каким бы оно ни было, истинно, то инструкция выполняется. Если условие не истинно, то оператор не выполняется; вместо этого программа пропускает его.

C If Заявление

Как правило, мы выражаем условие, используя «реляционные» операторы C . Операторы отношения позволяют нам сравнивать два значения, чтобы увидеть, равны ли они друг другу, неравны или одно больше другого.Вот как они выглядят и как они оцениваются в C.

Вот простая программа, которая демонстрирует использование if и операторов отношения.

 / * Демонстрация оператора if * /
главный( )
{
int num;
printf ("Введите число меньше 10");
scanf ("% d", & num);
если (число <= 10)
printf («Какой ты человек!»);
}
 

При выполнении этой программы, если вы наберете число, меньшее или равное 10, вы получите сообщение на экране через printf (). Если вы наберете другой номер, программа ничего не сделает. Следующее поможет вам понять поток управления в программе.

Пример,

/ * Расчет общих затрат * /

 main ()
{
int qty, dis = 0;
скорость плавания, общ;
printf ("Введите количество и скорость");
scanf ("% d% f", & qty, & rate);
если (кол-во> 1000)
dis = 10;
tot = (кол-во * ставка) - (кол-во * ставка * сб. / 100);
printf ("Общие расходы = Rs.% f", tot);
}
 

Вот пример взаимодействия с программой.

 Введите количество и ставку 1200 15.50
Общие расходы = рупий. 16740,000000
Введите количество и ставку 200 15.50
Общие расходы = рупий. 3100.000000 

При первом запуске программы условие оценивается как истинное, поскольку 1200 (значение qty) больше 1000. Следовательно, переменная dis, которая ранее была установлена ​​в 0, теперь получает новое значение 10. Используя это рассчитываются и печатаются общие расходы нового значения.

Во втором прогоне условие оценивается как ложное, поскольку 200 (значение qty) не превышает 1000.Таким образом, dis, для которого ранее было установлено значение 0, остается 0, и, следовательно, выражение после знака минус оценивается как ноль, тем самым не предлагая скидки.

Интерактивные учебные пособия

Оператор if else C ++ - CodersLegacy

В этой статье объясняется оператор if else C ++.

Оператор if else в C ++ - это способ принятия решений в C ++. Самое простое объяснение оператора if состоит в том, что «, если », возникает «данное условие», , а затем « делать это, ».Условие и соответствующее действие определяется нами. Оператор if обрабатывает все остальное.

В качестве альтернативы существует оператор switch, который является еще одним способом принятия решений при создании C ++. Он работает лучше в определенных сценариях, поэтому обязательно проверьте его.


Оператор if в C ++

Синтаксис

Самая простая и наиболее распространенная форма оператора if в C ++.

  if (условие) {
    // оператор (ы) кода
}  

Как объяснялось ранее, если данное условие оценивается как логическое значение «Истина», тогда кодовые операторы в кодовом блоке будут выполняться.Если условие ложно, блок кода (код в фигурных скобках) игнорируется.

Пример

«Условия» для операторов if почти всегда выполняются с использованием операторов сравнения C ++. Это просто обычные операторы, которые вы используете в арифметике, плюс несколько дополнительных.

Ниже приведена простая демонстрация.

 int main () {
    int x;

    cout << "Введите число:";
    cin >> x;

    if (x> 5) {
            cout << "Больше 5";
    }
}
 
  Введите номер: 8
Больше 5  

Приведенный выше код проверяет, «если» введенное пользователем число больше 5.Если «да» или «истина», то выполняется блок кода, в котором находится ключевое слово cout. В противном случае ничего не происходит, и выполнение программы переходит к строке после закрывающей фигурной скобки.


Оператор C ++ If… else

Синтаксис

Блок кода, содержащийся в скобках оператора else , будет выполняться, если ни одно из условий оператора if не выполнено.

  if (условие) {
    // оператор (ы) кода
}
else (условие) {
    // оператор (ы) кода
}  

Вы можете думать об этом как о блоке кода по умолчанию, который выполняется в отсутствие других.

Пример

Следующий пример является просто расширением предыдущего. По сути, он в некотором роде «завершает» оператор if. С оператором else также всегда будет вывод, независимо от того, было ли выполнено условие или нет.

 int main () {
    int x;

    cout << "Введите число:";
    cin >> x;

    if (x> 5) {
            cout << "Больше 5";
    }
    еще {
        cout << "Менее 5";
    }
}
 
  Введите число: 2
Менее 5  

Отсутствие оператора else может иногда сбивать с толку пользователя, потому что никогда не будет вывода или соответствующего действия.Но не используйте его без надобности.


C ++ if… else… else if оператор

Синтаксис

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

  if (условие) {
    // оператор (ы) кода
}
else if (condition) {
    // оператор (ы) кода
}
..
..
..
еще {
    // оператор (ы) кода
}  

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

Пример

Новый пример, демонстрирующий использование всех трех операторов, работающих вместе.

 int main () {
    bool x = true;

    if (x == true) {
            cout << "X истинно";
    }
    else if (x == false) {
        cout << "X является ложным";
    }
    еще {
        cout << "X не является ни истинным, ни ложным";
    }
}
 

Оператор else сработает, если значение не является ни истинным, ни ложным.Возможно, произошла ошибка, результат не был достигнут. И именно для этих сценариев инструкция else действительно пригодится для третьего «неожиданного» результата.

Мы не рассмотрели возможность 4 th , if ... elseif , но все, что вам нужно сделать, это оставить выражение «else», поскольку оно не является обязательным для оператора elseif .


Объединение нескольких условий

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

Наиболее часто используемые операторы для таких целей - это логические операторы и и или , представленные && и || соответственно. Операторы и возвращают истину, если оба условия равны истинно, , тогда как оператор или возвращает истину, если хотя бы одно из условий имеет значение истина .

 #include 
используя пространство имен std;

int main () {
    int x;

    cout << "Введите число:";
    cin >> x;

    if ((x> 0) && (x <101)) {
        cout << "X - число от 0 до 101";
    }
}
 
  Введите номер: 6
X - число от 1 до 100  

Оба условия необходимы, чтобы определить, находится ли число от 0 до 101.Отсутствие любого из них включило бы бесконечное количество значений.

Обязательно правильно обращайтесь с круглыми скобками. Выражение определяется круглыми скобками, поэтому убедитесь, что все правильно заключено в него.


Вложенные операторы if

Вы можете повысить мощность и сложность принятия решений, «вложив» операторы if друг в друга.

Ниже приведен довольно хороший пример для понимания того, как могут пригодиться вложенные циклы.

 int main () {
    int x, y;

    cout << "Введите число x:";
    cin >> x;
    cout << "Введите число y:";
    cin >> y;

    if (x> 0) {
        if (y> 0) {
            cout << "X и Y положительны";
        }
        if (y <0) {
            cout << "X положительный, Y отрицательный";
        }
    }
}
 
  Введите число x: 6
Введите число y: -8
X положительный, Y отрицательный  

Не существует реального ограничения на количество вложенных слоев, которые вы можете создать, но если у вас более трех операторов if, вложенных друг в друга, вероятно, пора пересмотреть свой подход.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *