Хелпикс

Главная

Контакты

Случайная статья





Конструкция switch



Конструкция switch

 

Другую форму организации ветвления программ представляет конструкция switch...case. Она имеет следующую форму:

 

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

{

case константа_1: инструкции_1;

case константа_2: инструкции_2;

 

default: инструкции;

}

После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.

В конце конструкции switch может стоять блок default. Он необязателен и выполняется в том случае, если значение после switch не соответствует ни одному из операторов case. Например:

 

#include <iostream>

using namespace std;

int main()

{

int x = 2;

switch(x)

{

case 1:

cout << "x = 1" << "\n";

break;

case 2:

cout << "x = 2" << "\n";

break;

case 3:

cout << "x = 3" << "\n";

break;

default:

cout << "x is undefined" << "\n";

break;

}

return 0;

}

 

Чтобы избежать выполнения последующих блоков case/default, в конце каждого блока ставится оператор break. То есть в данном случае будет выполняться оператор

 

case 2:

cout << "x = 2" << "\n";

break;

 

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

 

 

Стоит отметить важность использования оператора break. Если мы его не укажем в блоке case, то после этого блока выполнение перейдет к следующему блоку case. Например, уберем из предыдущего примера все операторы break:

 

#include <iostream>

using namespace std;

int main()

{

int x = 2;

 

switch(x)

{

case 1:

cout << "x = 1" << "\n";

case 2:

cout << "x = 2" << "\n";

case 3:

cout << "x = 3" << "\n";

default:

cout << "x is undefined" << "\n";

}

return 0;

}

 

В этом случае опять же будет выполняться оператор case 2:, так как переменная x=2. Однако так как этот блок case не завершается оператором break, то после его завершения будет выполняться набор инструкций после case 3: даже несмотря на то, что переменная x по прежнему равна 2. В итоге мы получим следующий консольный вывод:

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.