Конструкции выбора

К конструкциям выбора в С++ относят условную конструкцию if и переключатель switch.

Синтаксис условной конструкции:

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

if (выражение) оператор1; else оператор2;

Выражение должно быть скалярным и иметь арифметический тип или тип указателя. В операторе if оператор1 выполняется в том случае, если выражение ненулевое, иначе выполняется оператор2 или не выполняются никакие действия, если оператор2 не задан, то есть отсутствует else. В частности, если a целое, то if (a) эквивалентно if (a != 0).

Часто используются в условиях логические операции &&, ||, !. Операции && и || не будут вычислять второй аргумент, если это не нужно. Например, if (p && r) … вначале проверяет, является ли p не нулем, и только, если это так, то проверяет r.

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

Например,

if (a <= b) max = b;

else max = a;

лучше выражается так: max = (a<=b) ? b : a;

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

Пример 1. Напишите программу, которая вычисляет и выводит на экран значение

y=.

#include <iostream.h>

void main()

{

double x,y;

cout<< "\nEnter x: ";

cin >> x;

if ((x>0)||(x<-1)) y=1/x;

else y=x;

cout << "\ny="<<y;

}

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

Пример 2. Используя вложенные уловные операторы, найти максимум из трех целых чисел.

#include <iostream.h>

void main()

{

int x,y,z, max;

cout << "Enter x,y,z: ";

cin >>x>>y>>z;

if (x<y)

    if (y<z) max=z;

    else max=y;

else

    if (x<z) max=z;

    else max=x;

cout <<"Max= "<< max;

}

В тексте соответствие if и else показано с помощью отступов.

Переключатель является наиболее удобным средством для организации мультиветвления. Синтаксис переключателя:

switch (перключающее_выражение)

{case константное_выражение1: оператор1;

case константное_выражение2: оператор2;

. . .

case константное_выражениеn: операторn;

default:оператор;

}

Управляющая конструкция switch передает управление к тому из помеченных с помощью case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Переключающее_выражение должно быть целочисленным или его значение должно приводится к целочисленному. В одном переключателе все константные_выражения должны иметь различные значения, но быть одного типа. Любой из операторов может быть помечен одной или несколькими метками вида case константное_выражение: , например, может использовать конструкция вида

case константное_выражение1: case константное_выражение2: оператор;

Если значение переключающего_выражения не совпадает ни с одним из константных_выражений, то выполняется переход к оператору, отмеченному меткой default, которая может и отсутствовать (при этом не выполняются никакие действия). Если не предусмотрены переходы и выходы из переключателя, то в нем последовательно выполняются все операторы, начиная с той метки, на которую передано управление. Для выхода из переключателя обычно используют оператор break.

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

#include <iostream.h>

void main()

{

char i;

cout<< "Enter number: ";

cin>>i;

cout<<'\n';

switch (i)

{

case '0': case '1': cout "one, ";

case '2': case '3': cout <<"three, ";

case '4': case '5': cout <<"five, ";

case '6': case '7': cout <<"seven, ";

    case '8': case '9': cout <<"nine, "; break;  // производим выход

                                                                  // из переключателя

  default: cout <<"It's not number";

}

}

Если, например, на клавиатуре будет введена цифра 4, то в результате выполнения программы на экран выведется: five, seven, nine.

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


Защитный код
Обновить

Мобильные устройства

Технологические системы

Программирование

Реклама

Яндекс.Метрика
© 2011-2016 pc-4you.ru Копирование материалов разрешено только с указанием активной ссылки на первоисточник