Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Глава 5. Операторы управления программой 61




Вложенныекоманды

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

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

//       — вводится

//         Числа суммируются, пока

//         не введет

//         Этот процесс будет

//         пока общая сумма не станет равной

<stdio.h>

 

int main(ir.t arg, char* pszArgs[])

{

<<           суммирует "

<< "последовательности чисел.\п Ввод каждой "

<<                 завершается "

<< "вводом           числа \п"

<< "Чтобы завершить ввод последовательностей, "

<< "нужно        отрицательных числа

// внешний цикл работает с последовательностями чисел int

do

{

// начинаем ввод очередной последовательности чисел accumulator =

<<       очередную

//        цикл

 

{

// введение очередного числа int value = 0;

cout << "Введите очередное    "; cin >>

// если оно отрицательное... (value < 0}

{

// ... выходим из цикла break;

}

// ...иначе добавляем число к

 

62                                                                 Часть I, Первое знакомство с C++


// общей сумме

accumulator accumulator + value;

 

// Вывод результата вычислений...

« "\пОбщая сумма равна "

<< accumulator

<<

 

I /    накопленная общая сумма чисел

// последовательности не равна нулю,

// начинаем работать со следующей

// последовательностью

} while (accumulator 0) ; cout << "Программа

return 0;

 

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

switch

{


cas e


 

//переходим сюда, если выражение == break;


case c2:

//переходим             если выражение == с2 break;

//если ни одно условие не выполнено,

// переходим сюда

1

Значением выражения должно быть целое число                   long или char); cl , с2, сЗ

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

Рассмотрим для примера следующий фрагмент программы:

cout <<  "Введите      2 или cin        >> choice;

switch (choice)

{


case


 

//обработка случая "1 "


case 2:

//обработка случая break;


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 182; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь