Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Марченко А.Л. -> "С++ бархатный путь " -> 35

С++ бархатный путь - Марченко А.Л.

Марченко А.Л. С++ бархатный путь — М.: Горячая линия - Телеком, 2005. — 399 c.
ISBN 5-93517-056-6
Скачать (прямая ссылка): barhatniyput2005.djvu
Предыдущая << 1 .. 29 30 31 32 33 34 < 35 > 36 37 38 39 40 41 .. 152 >> Следующая

Эту самую пару операторов for можно переписать, например, следующим образом;
for (int і “ 0, int j “ 0; і < 100; І++, ]—)
(
// Здесь располагаются операторы первого цикла.
)
for (і » 0, int k - 250; і < 100; І++, k—-)
// Здесь располагаются операторы второго цикла.
)
Здесь нет ошибок, но при чтении программы может потребоваться дополнительное время для того, чтобы понять, откуда берётся имя для выражения присвоения і = 0 во втором операторе цикла. Кроме того, если предположить, что операторы цикла в данном контексте реализуют независимые шаги какого-либо алгоритма, то почему попытка перемены мест пары абсолютно независимых операторов сопровождается сообщением об ошибке'.
for (і = О, int k * 250; і < 100; і++, к—)
!
// Здесь располагаются операторы второго цикла.
}
84
for (int і - 0, int 3 - 0; і < 100; 1++, j--)
I
// Здесь располагаются операторы первого цикла.
1
Очевидно, что в первом операторе оказывается необъявленной переменная І. Возможно, что не очень удобно, однако, в противном случае, в центре управления циклом трудно буден следить за внешними событиями. В конце концов, никто не заставляет программиста располагать в операторе инициализации объявления переменных. Исходная пара операторов может быть с успехом переписана следующим образом:
int і, j, k;
for (і = 0, k = 250; і < 100; i++, k—)
{
// Здесь располагаются операторы второго цикла.
)
for (і - 0, 3 - 0; і < 100; i++, j—)
(
// Здесь располагаются операторы первого цкхла.
J
А вот ещё один довольно странный оператор цикла, в котором, тем не менее, абсолютно корректно соблюдены принципы областей действия имён, областей видимости имён, а также соглашения о соотнесении имён и областей их действия:
Cor (int ж; х < 10; *++) (int ж “ 0; х++;}
Так что всегда наддо помнить о том, что область действия имён в заголовке цикла шире от области действия имён в теле цикла. И вообще, если можно, лучше избавляться от объявлений в заголовке оператора цикла.
Отметим эквивалентные формы операторов цикла с предусловием. Пошаговый оператор цикла
foe (ОператорИкициадизацииГог 'Выражение*./ ; і ВыражениеВ 1) Оператор
эквивалентен оператору цикла
ОператорИнициалиаацкиГог while (ВиражениеА)
I
Оператор ВыражениеВ ;
)
Цикл while отличается системой управления. Его выполнение определяется лишь значением условного выражения. Здесь следует обратить внимание на точку с запятой после выражения, представленного нетерминальным символом ВыражениеВ в теле оператора цикла while. В цикле
85
while выражение становится оператором. Важно, что условие продолжения цикла в операторе цикла while опускать нельзя. В крайнем случае, это условие может быть представлено целочисленным ненулевым литералом.
Оператор цикла do ... while называется оператором цикла с постусловием, От циклов с предусловием он отличается тем, что сначала выполняется оператор (возможно, составной), а затем проверяется условие выполнения цикла, представленное выражением, располагающимся в скобках после ключевого слова whHe. В зависимости от значения этого выражения возобновляется выполнение оператора. Таким образом, по крайней мере один раз, гарантируется выполнение оператора цикла.
int ххх - о,-
do (cout « XXX « endl; XXX++;) while (XXX < 0);
Оператор continue как средство управления циклом
С помощью этого оператора прерывается текущая последовательность операторов в теле Цикла, после чего начинается процедура проверки условия продолжения цикла.
Аналог оператора continue: пустой помеченный оператор в конце блока операторов, составляющих тело и оператор безусловного перехода в теле цикла:
while (X)
I
goto Continue;
Continue: ; t
do (X)
(
goto Continue;
Continue: ;
) while (X(
for (;;) f
goto Continue;
Continue: ;
)
86
3. Указатели и массивы
Указатели
Объявление указателя очень незначительно отличается от ранее рассмотренных вариантов объявлений. Обычный список спецификаторов объявлений {он не вносит никакой принципиально новой информации в объявление указателя), за которым располагается описатель.
Р6*швл«ни« : : - СдисокСлацкфккаторовОб-швлвкиж
СписокОпис аталай ;
Описатель : PtrOn*P«UMJI
pt-гОпераци* Описатель
- * {СписокСУРписат»лей
- 6 іСписокСУОписаталай}
в *****
СпмсокСУОписатвлай
СУОписаталь СлисоісСУОпксат<ал*й
СУОпжсатвль :const
;volatile
Подобно множеству ранее описанных объектов, множество указателей характеризуется типом, который в объявлении задается списком спецификаторов. Объявление указателя отличается наличием так называемой риОлерации в описателе. Символ рЮперации (в сочетании с необязательными элементами const и volatile) как раз и определяет основную специфику указателя.
Значениями указателя являются адреса в памяти, выделяемые под объекты. Указатель фиксирует адреса объектов соответствующего типа. Каждому типу соответствует собственный тип указателя.
Предыдущая << 1 .. 29 30 31 32 33 34 < 35 > 36 37 38 39 40 41 .. 152 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.