АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Условный оператор if

Читайте также:
  1. Аппаратчик-оператор экологических установок
  2. Арифметический оператор присваивания
  3. Договорные отношения в туризме. Работа туроператоров с поставщиками туристических услуг и партнёрами
  4. Классификация математических моделей в зависимости от оператора модели
  5. Логические операторы
  6. Оператор Like и символы подстановки в запросах
  7. Оператор Без НДС С НДС
  8. Оператор выбора switch
  9. Оператор цикла do while
  10. Оператор цикла do while
  11. Оператор цикла for
  12. Оператор цикла while

Рассматриваемая группа операторов позволяет организовать ветвление в программе. Часто, например, необходимо в зависимости от того или иного результата реализовать одну либо другую группу операторов (инструкций). В языке СИ для этих целей используются операторы if (если) – else (иначе), switch (переключатель) и goto (идти к).

Оператор if имеет вид:

if (проверка условия) инструкция1; else инструкция2;

 
 

Если условие в скобках принимает истинное значение, выполняется инструкция1, а если ложное – инструкция2 (см. рис. 1).

 
 
рис.1.


Например:

if (a>b)

z=a;

else

z=b;

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

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

Например:

if (num>10) num=2*num;

printf(“%d\n”,num);

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

Операции отношения, используемые для сравнения, приведены в таблице 1.

 

Таблица 1

Операция Смысл
< меньше
<= меньше или равно
= = равно
>= больше или равно
> больше
!= не равно

Не следует путать операцию отношения «==» с операцией присваивания «=».

Рассмотрим простейшую программу:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iostream.h>

main()

{

int a,b;

puts(“Введите значения a и b”);

scanf(“%d %d”, &a,&b);

if (a>b) puts(“a больше b”);

else puts(“a меньше или равно b”); /*демонстрация оператора if – else*/

if (a==b) puts(“a равно b”); /*демонстрация оператора if без слова else*/

getch ();

return 0;

}

Если для выполнения программы ввести числа 5 и 3, то на экране появится строка:

а больше b

При введении чисел 5 и 5, на экране появится две строки:

a меньше или равно b

a равно b

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

Например, в

if (n>0)

if (a>b)

z=a;

else

z=b;

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

if (n>0)

{

if (a>b)

z=a;

}

else

z=b;

В данном примере else относится к внешнему if.

В сложных конструкциях, содержащих много if и else, уместно вложенные if обрамлять фигурными скобками.

Вместо вложенных конструкций if–else часто целесообразно использовать сложные выражения для проверки условия. Сложные выражения получаются путем объединения нескольких простых отношений с помощью логических операций. В языке СИ имеются три логические операции, приведенные в таблице 2.

 

Таблица 2

Операция Смысл
&& и
|| или
! не

 

Операция! имеет очень высокий приоритет, он выше, чем умножения, и только круглые скобки имеют более высокий приоритет. Приоритет операции && выше, чем операции ||, а обе они имеют более низкий приоритет, чем операции отношения. Поэтому выражение

a>b&&b>c||b>d

будет интерпретировано так:

((a>b)&&(b>c))||(b>d),

т.е. b находится в промежутке между c и a или b больше d.

Пример

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iostream.h>

main()

{

float x, y;

printf("Input x\n");

scanf ("%f", & x);

if (x > 0)

y = x*x + 1;

else

y = x + 4;

printf ("x=%f y=%f", x, y);

getch ();

return 0;

}


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)