Оператор выбора
При многократном вложении условных операторов программная конструкция становится громоздкой и ее трудно понять. Считается, что число вложений не должно превышать двух-трех. При большем числе вложений рекомендуется использовать оператор выбора switch-case.
Общий вид записи оператора
switch <селектор>
{
сase константа выбора 1: оператор 1; break;
…………………………………………………
сase константа выбора n: оператор n; break;
default: оператор n+1;
}
Селектор - это выражение целого или символьного типа.
Константы выбора - возможные значения селектора.
default – осуществляет обработку непредусмотренного значения селектора. Наличие этой метки в операторе switch необязательно.
Работа оператора
По вычисленному значению селектора выбирается для исполнения case-оператор, содержащий константу выбора, равную значению селектора. После выполнения выбранного case-оператора управление передается на конец оператора case. Следующим в программе выполняется оператор, стоящий за оператором выбора switch.
Пример 1. Написать оператор выбора для вычисления величины y по формулам:
Оператор выбора имеет следующую запись:
switch (n)
{
case 1: у =х; break;
case 2: case 3: у = 2 * sqrt(abs(x)); break;
case 4: у = ехр(х); break;
default: printf("значение для n указано не верно\n");
}
Графическая интерпретация оператора
В схемах алгоритма оператору switch соответствует структура ВЫБОР.
Для приведенного выше примера 1 эта структура выглядит следующим образом:
n=4 |
Анализ селектора n |
y=x |
n=1 |
y= |
y= |
n=2 или n=3 |
Замечание. Если в строке выбора необходимо записать несколько операторов, то их заключают в операторные скобки {...}.
Пример 2. Вычислить значение у.
Если значение х не принадлежит рассматриваемым промежуткам, то вывести на экран соответствующее сообщение.
В задаче переменная х является вещественной и не может использоваться в качестве селектора оператора case. Введем новую переменную целого типа n, которой присваивается целая часть значения х.Тогда программа решения данной задачи с использованием оператора выбора может быть составлена следующим образом.
#include "stdafx.h"
#include<math.h>
int main()
{
float х, у;
int n;
printf("Введите число х= ");
scanf("%f",&x);
if( (х<1) || (x>=5))
printf("x не принадлежит рассматриваемой области\n");
else
{ n = x;
Дата добавления: 2015-02-10; просмотров: 1300;