Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_Cpp.doc
Скачиваний:
6
Добавлен:
20.11.2019
Размер:
603.14 Кб
Скачать

Int dvalue;

cin>>dvalue;

switch(dvalue)

{

case 0: // если dvalue равно нулю, то

// ...выполним эту часть программы...

break; // выход из оператора switch

case 1: // если dvalue равно 1, то

// ...выполним эту часть программы...

break;

case 3: // если dvalue равно 3, то

// ...выполним эту часть программы...

break;

default: // во всех других случаях выполнить:

// ... эту часть программы...

}

В этом примере ввод значения переменной dvalue приводит к выбору соответствующего варианта из списка switch. Оператор break прекращает выполнение switch и передаёт управление следующему за ним оператору. Заметим, что отсутствие оператора break не вызовет возражений компилятора, однако в этом случае будут по порядку выполнены все операторы, следующие за этой строкой, если только явно не указано иное. В С++ такое поведение программы определено умышленно, поскольку это упрощает использование нескольких меток. В следующем примере не делаются различия между строчными и прописными буквами, вводимыми с клавиатуры.

char choise;

cin>>choise;

switch(choise)

{

case ’a’:

case ’A’: cout<< ” abort”;

break;

case ’r’:

case ’R’: cout<< ” report”;

break;

default: cout<< ” That’s not a choise”;

}

Поскольку за меткой casea’: отсутствует оператор break, выполнение программы продолжается со следующей строки, с оператора, который расположен сразу после caseA’:.

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

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

if (age>17 && age<20)

code=0;

else if (age>=20 && age<35)

code=1;

else if (age>=35)

code=2;

else

code=3;

Оператор switch не предназначен для обработки диапазонов. Кроме того, значение метки должно быть константой, а вариант метки – целым (включая тип char), поэтому switch не будет обрабатывать вещественные числа. Однако, если возможно, используйте оператор switch, так как это более эффективно с точки зрения скорости выполнения и размера программы.

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

Нередко программа вынуждена выполнять повторяющиеся операции, например, вычисление сумм, произведений или многократный вывод текста на экран. Для этих целей в языке C++ используются операторы цикла.

2.2.1. Оператор for

Следующий листинг показывает, что можно делать с помощью оператора цикла for:

#include <iostream.h>

Void main()

{

Int I; // создаем переменную цикла

for(i=0; i<5; i++)

cout << ”C++ loops\n”; // выполняем до тех пор, пока

// i меньше 5 (i<5), после каждой

// итерации цикла значение переменной i

// увеличивается на единицу (i++)

cout << ” Loops stop\n”;

return;

}

Результат работы программы приведен ниже:

C++ loops

C++ loops

C++ loops

C++ loops

C++ loops

Loops stop

Как видно, оператор for поэтапно выполняет следующие действия.

  • Задает начальное значение переменной цикла ( i = 0).

  • Проверяет условие выполнения цикла (i<5).

  • Выполняет действия внутри тела цикла, если условие истинно. Как только условие становится ложным – цикл прекращается.

  • Выполняет операцию над переменной цикла в каждой итерации, в данном случае – это операция инкремента, т.е. увеличения значения переменной на единицу.

Тело цикла может содержать несколько операторов, в этом случае они группируются в блок при помощи фигурных скобок. Так, например, может выглядеть программа, которая суммирует вводимые с клавиатуры числа.

#include <iostream.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]