Операторы ветвления. Оператор множественного выбора switch



Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:

 

switch ( выражение ) { case константное_выражение_1: операторы 1; case константное_выражение_2: операторы 2; ... case константное_выражение_n: операторы n; [default: операторы ;] }

 

Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается case-метке – операторам, помеченным константным выражением, значение которого совпало с вычисленным, после чего последовательно выполняются все остальные ветви, если выход из переключателя явно не указан.

Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы, расположенные после слова default (а при его отсутствии управление передается следующему за switch оператору).

Если в какой-то из case-меток отсутствует оператор break, то выполнятся также операторы в следующей case-метке и так далее до тех пор, пока где-то не встретится оператор break.

Пример (программа реализует простейший калькулятор на 4 действия):

 

#include <stdio.h>

int main( )

{ int a, b, res; char op; printf ( "\n Введите 1-й операнд: "); scanf ("%d", &a); printf ( "\n Введите знак операции: "); scanf ("%c", &op); printf ( "\n Введите 2-й операнд: "); scanf ("%d", &b); bool f = true; switch (op) {  case '+': res = a + b; break;  case '-': res = a - b;  break;  case '*': res = a * b; break;  case '/': res = a / b;  break;  default: printf ("\n Неизвестная операция"); f = false; } if ( f )  printf ("\n Результат: %d", res); }

 

Выход из переключателя обычно выполняется с помощью операторов break или return.

 

Операторы цикла

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

Для организации цикла необходима переменная, называемая параметр цикла или управляющая переменная цикла. Любой цикл состоит из:

· начальных установок или блока инициализации параметра цикла;

· тела цикла, то есть тех операторов, которые выполняются несколько раз;

· блока модификации параметра цикла;

· проверки условия выхода из цикла, которая может размещаться либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием).

 

Рисунок 3.3 – Два вида циклов

 

Один проход цикла называется итерацией. Целочисленные параметры цикла, изменяющиеся на целое число на каждой итерации, называются счетчиками цикла.

Нельзя передавать управление извне внутрь цикла. Выход из цикла возможен как при выполнении условия выхода, так и по операторам break, return или безусловного перехода goto.

 

Цикл с предусловием (while)

Цикл с предусловием реализует схему алгоритма, приведенную на рисунке 3.3 (а), и имеет вид:

 

while ( выражение ) оператор;

 

Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Если выражение не равно 0 (истинно), выполняется оператор цикла, после чего опять вычисляется выражение. Если при первой проверке выражение равно 0 (ложно), цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему.

Пример (программа печатает таблицу значений функции y=x2+1 во введенном диапазоне):

 

#include <stdio.h>

int main( )

{

 float Xn, Xk, Dx;

 printf ("Введите диапазон и шаг изменения аргумента: ");

 scanf ("%f%f%f", &Xn, &Xk, &Dx);

 float X = Xn;                                   //начальные установки цикла

 while ( X <= Xk )                                      //проверка условия выхода

{

 printf ("\n %5.2f %5.2f", X, X*X + 1); //тело

X += Dx;                                           //модификация

 }

}

 

2.7 Цикл с постусловием (do while)

Цикл с постусловием реализует схему алгоритма, приведенную на рисунке 3.3 (б), и имеет вид:

 

do оператор while выражение;

 

Сначала выполняется простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно не равно 0 (истинно), тело цикла выполняется еще раз, и так далее, пока выражение не станет равным нулю (ложно) или в теле цикла не будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.

Пример (программа осуществляет проверку ввода):

 

#include <stdio.h>

int main( )

{

 char answer;

 do

{

printf ("\n Купи слоника!");

scanf ("%c", &answer);

}

while (answer != 'y');

}

 

Цикл for

 

Цикл for реализует схему алгоритма

 

 

и имеет следующий формат:

 


Дата добавления: 2021-01-20; просмотров: 92; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!