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


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



ЗНАЕТЕ ЛИ ВЫ?

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



Краткая теория

Операторы ветвления управляют потоком выполнения программы. Это условный оператор if... else и переключатель switch.

Условные операторы позволяют выбрать один из вариантов выполнения действий в зависимости от каких-либо условий. Условие – это логическое выражение, т.е. выражение, результатом которого является логическое значение истина или ложь. Выражение может иметь арифметический тип. Если оно не равно 0, то условие считается истинным. Если равно 0, то условие считается ложным.

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

Оператор if выбирает один из двух вариантов последовательности вычислений. Синтаксис условного оператора:

 

if ( выражение )

оператор_1;

Else

оператор_2;

 

Рисунок 3.1 – Блок-схема оператора ветвления

 

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

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

if ( x > 0 )

{

x = -x;

f ( x * 2 );

}

Else

{

int i = 2;

x *= i;

f ( x );

}

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

Условный оператор можно расширить для проверки нескольких условий:

 

if ( x < 0 )

cout << "Отрицательная величина";

else if ( x > 0 )

cout << "Положительная величина";

Else

cout << "Ноль";

 

Конструкций else if может быть несколько.

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

 

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

Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:

 

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

{

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

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

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

default:

операторы;

}

 

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

 

#include <iostream.h>

void main()

{

int i;

cout<<"\nEnter the number";

cin>>i;

switch(i)

{

case 1:cout<<"\nthe number is one";

case 2:cout<<"\n2*2="<<i*i;

case 3: cout<<"\n3*3="<<i*i;break;

case 4: cout<<"\n"<<i<<" is very beautiful!";

default:cout<<"\nThe end of work";

}

}

 

Результаты работы программы:

1. При вводе 1 будет выведено:

The number is one

2*2=1

3*3=1

2. При вводе 2 будет выведено:

2*2=4

3*3=4

3. При вводе 3 будет выведено:

3*3=9

4. При вводе 4 будет выведено:

4 is very beautiful!

5. При вводе всех остальных чисел будет выведено:

The end of work

Все константные выражения в операторе switch должны быть уникальны. Кроме операторов, помеченных ключевым словом case, может быть, но обязательно один, фрагмент, помеченный ключевым словом default.

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

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

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

Запись типа

case 6 .. 20: cout << "шесть или семь,"; break; // недопустима! case не поддерживает выборку из интервала никак, как бы этот интервал не был задан, типа 6..20, или [6, 20], или (6, 20), или [6..20], [6…20] и т.д.

Но допускается следующее:

switch ( ic )

{

case 0: cout << "ноль"; break;

case 1: cout << "один,"; break;

case 6: case 7: cout << "шесть или семь,"; break;

case 8: case 9: cout << "восемь или девять."; break;

default: cout << "ОШИБКА!":

}



Поделиться:


Последнее изменение этой страницы: 2016-12-11; просмотров: 657; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.153.38 (0.009 с.)