Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mL_5_oper.doc
Скачиваний:
2
Добавлен:
29.04.2019
Размер:
241.15 Кб
Скачать

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

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

К ним относятся:

  • операторы выбора (условный оператор  if…else , переключатель  switch );

  • операторы циклов (c предусловием  while , с постусловием  do..while , итерационный  for );

  • операторы перехода (безусловный переход goto, выход из текущей итерации  continue , выход из цикла или переключателя  break , возврат из функции  return ).

Операторы выбора

К операторам выбора относятся условный оператор  if…else , переключатель  switch .

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

Условие – это логическое выражение, результатом которого является значение  1  (истина) или  0  (ложь).

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

Условный оператор  if…else  выбирает один из двух вариантов последовательности вычислений и имеет следующий синтаксис:

If (выражение_1) выражение_2 else выражение_3

Если  выражение_1  – истина, то выполняется  выражение_2 , если – ложь, то –  выражение_3 .

 Выражение_1  должно быть скалярным. Если  выражение_1  равно  0  , то условие считается ложью. Любое другое значение выражения считается истиной.  Выражение_2  и  выражение_3  могут быть составными операторами и блоками.

Рис.3 – Блок-схема работы условного оператора

Такие алгоритмы называются разветвлением.

Пример. Переменной а присвоить значение максимума из двух величин х и y:

if (x>y) a=x;

else a=y;

Пример. Переменным а присвоить значение максимума, b – минимума из двух величин х и y:

if (x>y){a=x; b=y;

puts(“x больше y”);}

else { a=y; b=x;

puts(“x меньше y”); }

Допустима сокращенная форма условного оператора, в котором отсутствует  else оператор_3 . В этом случае, если проверяемое условие равно  0 , то никакие действия не выполняются.

Рис.4. – Блок-схема работы неполного условного оператора

Пример. Переменной abs присвоить абсолютное значение числа х

if (x<0) x=–x;

abs=x;

 Выражение_2  и  выражение_3  могут также быть условными. В этом случае получаем вложенные условные операторы. Причем, каждое  else  соответствует ближайшему  if .

Пример  2.2 . Определение максимального числа из трех переменных a, b, c:

#include <stdio.h>

void main()

{int a,b,c;

puts(“Введите три числа”); //ввод трех чисел с клавиатуры

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

if (a>b&&a>c) printf(“MAX a=%d\n”, a);

else if(b>c) printf(“MAX b=%d\n”, b);

else printf(“MAX c=%d\n”, c);

}

Пример  2.3 . Определение равных чисел из трех переменных a, b, c:

#include <stdio.h>

void main()

{int a,b,c;

puts(“Введите три числа”);

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

if(a==b&&a==c) printf(“Все числа равны %d\n”,a);

else if(a==b) printf(“Числа 1-е и 2-е равны %d\n”,a);

else if(a==c) printf(“Числа 1-е и 3-е равны %d\n”,a);

else if(b==c) printf(“Числа 2-е и 3-е равны %d\n”,b);

else printf(“Нет равных чисел”);

}

Здесь можно иногда ошибиться:

Пример  2.4 .

#include <stdio.h>

void main()

{int x,y;

scanf(“%d %d”,&x,&y); // значение x,y может быть 0 или 1

if(x==0)

if(y==0) printf(“CO”); // если  х=0, у=0 , то выведется  CODA 

else printf(“BO”); // если  х=0у=1 , то выведется  BODA 

puts(“DA”); // если  х=1 , переменная  у  не проверяется и выведется  DA 

}

Но если применить фигурные скобки, то  else  будет относиться к внешнему  if .

Пример  2.5 .

#include <stdio.h>

void main()

{int x,y;

scanf(“%d %d”,&x,&y); //значение x,y может быть 0 или 1

if(x==0)

{if(y==0) printf(“CO”); } // если  х=0, у=0 , то выведется  CODA 

else printf(“BO”); // если  х=1  переменная  у  не проверяется, выведется BODA 

puts(“DA”); // если  х=0, у=1 , то выведется только  DA ,

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]