Int x; // объявление целой переменной

Int main ()

{

int x, sum = 0; // объявление x и sum, инициализация sum

bool flag = true;        // инициализация flag

While (flag)            // пока flag истина

{

cout << "Enter x -> "; // вывод подсказки

cin >> x;           // ввод значения x

if (x > 0)         // проверка x

{

sum += x; // накопление sum для x > 0

Continue; // переход на новую итерацию

}

flag = false;       // изменение flag

}

cout << sum << endl;     // вывод результата

return 0;

}

 

 

В цикле while вводятся значения переменной х. Сумма введенных значений накапливается до тех пор, пока вводятся положительные числа. Оператор continue обеспечивает передачу управления к оператору вывода подсказки. Оператор

 

flag = false;

выполняется, когда введено отрицательное число или 0. Выражение flag в операторе while становится ложным, и цикл while завершается, а управление получает оператор вывода результата. Результат выполнения программы с оператором continue показан на рис. 7.12

 

Рис. 7.11 Схема листинга 7.6

Рис. 7.12. Результат выполнения программы с оператором continue

 

 

7.8 ОПЕРАТОР ПЕРЕДАЧИ УПРАВЛЕНИЯ BREAK

 

Формат оператора:

break;

Оператор вызывает выход из цикла оператора while, for и do while, а также из оператора-переключателя switch, см. в следующий раздел. Управление передается оператору, непосредственно следующим за заканчиваемым оператором цикла или переключателем. Типичное использование оператора break состоит в том, чтобы завершить выполнение цикла досрочно (листинг 7.7).

 

Листинг 7.7. Пример использования оператора break

#include <iostream>

using namespace std;

Int main ()

{

int x, sum = 0; // объявление x и sum, инициализация sum

while (true)                // пока истина

{

       cout << "Enter x -> "; // вывод подсказки

       cin >> x;              // ввод значения x

       if (x <= 0)           // проверка x

             break;            // завершить цикл, когда x  0

       sum += x;              // накопление sum для x > 0

}

cout << sum << endl;         // вывод результата

return 0;

}

 

В данном примере выполняются те же вычисления, что и в предыдущем. В цикле while вводятся значения переменной х. Если введенное значение отрицательное или равно 0, то цикл немедленно завершается, благодаря оператору break. Если значение х положительное, накапливается сумма. Выход из цикла возможен только при вводе нуля или отрицательного числа. Управление получает оператор вывода результата.

 

 

Схема листинга 7.7 показана на рис. 7.13

 

 

Рис. 7.13 Схема листинга 7.7

 

7.9 ОПЕРАТОР-ПЕРЕКЛЮЧАТЕЛЬ SWITCH

 

Формат оператора:

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

{

case константа1:

оператор1;

case константа2:

оператор2;

....

case константаN:

операторN;

default:

оператор;

}

 

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

Метка case представляет собой константное целочисленное выражение, все метки должны быть уникальными.

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

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

Если не выбирается ни одна из меток case, тогда управление получает case с меткой default, а после его выполнения оператор switch завершается. При отсутствии необязательной метки default оператор switch заканчивает свою работу. И в первом, и во втором случае управление переходит к следующему оператору программы (листинг 7.8). Логическая схема оператора-переключателя показана на рис. 7.14

 

< Примечание >

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

 

Листинг 7.14. Пример использования оператора switch с разными действиями для разных констант

 

int x;                        // объявление целой переменной


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: