Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
«Если в текущей ветви оператораif имеется только одна инструкция, скобки использовать необязательно. Однако очень легко сделать ошибку, которую без скобок, определяющих структуру операторов, компилятор С++ обнаружить не сможет.»
[ Атас! ]
Поэтому намного безопаснее включать скобки всегда. Если друзья будут уговаривать вас не использовать скобки, не поддавайтесь!
Работу оператора if можно рассмотреть на следующем примере:
/* BranchDemo — введите два числа. */
/* Если первый аргумент больше, выполняем операторы первой ветви, если меньше — второй. */
#include
#include
#include
using namespace std ;
int main( int argc , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
/* вводим первый аргумент... */
int arg1 ;
cout << "Введите arg1: " ;
cin >> arg1 ;
/* ... второй */
int arg2 ;
cout << "Введите arg2: " ;
cin >> arg2 ;
/* теперь решаем, что делать: */
if ( arg1 > arg2 )
{
cout << "Аргумент 1 больше, чем аргумент 2"
<< endl ;
}
else
{
cout << "Аргумент 1 не больше, чем аргумент 2"
<< endl ;
}
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
__________________
67 стр. Глава 5. Операторы управления программой
Программа считывает два целых числа, вводимых с клавиатуры, и сравнивает их. Если выражение " arg1 больше arg2 " истинно, то выполняется инструкция cout << "Аргумент 1 больше, чем аргумент 2 " ; . Если же нет, то управление переходит к последовательности операторов, соответствующей условию else: cout << "Аргумент 1 не больше , чем аргумент 2 " ; . Вот пример работы программы:
Введите arg1: 5
Введите arg2: 6
Аргумент 1 не больше, чем аргумент 2
Press any key to continue...
►Выполнение циклов...68
Оператор перехода позволяет управлять работой программы, когда существуют альтернативные пути её выполнения. Это усовершенствование языка хотя и весьма значительное, но всё же не достаточное для написания полнофункциональных программ.
Рассмотрим проблему обновления экрана компьютера. При перерисовывании содержимого типичного дисплея компьютеру необходимо выводить на экран тысячи пикселей. Если программа не умеет повторно выполнять один и тот же фрагмент кода, вы будете вынуждены тысячи раз записывать одно и то же множество инструкций.
Для решения этой проблемы необходим способ, который позволит многократно выполнять одни и те же последовательности инструкций. Операторы цикла предоставляют возможность решить эту задачу.
Цикл while...68
Самый простой цикл можно организовать с помощью оператора while . Он выглядит таким образом:
while ( условие )
{
/* Этот код выполняется повторно, пока условие остаётся истинно */
}
Сначала проверяется условие . Условием могут быть выражения вида var > 10 , var1 == var2 или любые другие. Если условие истинно, выполняются инструкции в скобках. Дойдя до закрывающей скобки, компилятор передаёт управление в начало цикла, и всё повторяется вновь. Таким образом, смысл оператора while в том, что программный код в скобках повторно выполняется до тех пор, пока не нарушится условие ( этот процесс напоминает мне утренние прогулки с собакой вокруг дома, пока она не... ну а потом мы возвращаемся ).
Если условие сначала было справедливо, тогда что может заставить его стать ложным? Рассмотрим следующий пример программы:
/* WhileDemo — введите счётчик цикла. Программа выводит количество выполненных циклов while */
#include
#include
#include
using namespace std ;
int main( int argc , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
_________________
68 стр. Часть 1. Первое знакомство с С++
/* Ввод счётчика цикла */
int loopCount ;
cout << "Введите loopCount: " ;
cin >> loopCount ;
/* Теперь в цикле выводим значения */
while ( loopCount > 0 )
{
loopCount = loopCount - 1 ;
cout << "Осталось выполнить "
<< loopCount << " циклов( a )\n" ;
}
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
Программа WhileDemo получает от пользователя значение счётчика цикла, которое сохраняется в переменной loopCount . Затем программа выполняет цикл while . Сначала проверяется значение переменной loopCount . Если оно больше нуля, программа входит в тело цикла ( телом цикла называется код между скобками ), где loopCount уменьшается на 1, и результат выводится на экран. Затем программа возвращается к началу цикла и проверяет, осталась ли переменная loopCount положительной.
Ниже представлены результаты выполнения программы, выведенные на экран. Нетрудно догадаться, что введённый мною счётчик цикла равен 5. Программа пять раз выполнила цикл, каждый раз выводя результат на экран:
Введите loopCount: 5
Осталось выполнить 4 циклов( а )
Осталось выполнить 3 циклов( а )
Осталось выполнить 2 циклов( а )
Осталось выполнить 1 циклов( а )
Осталось выполнить 0 циклов( а )
Press any key to continue...
Если пользователь введёт отрицательное значение для счётчика цикла, условие окажется ложным и тело цикла не будет выполнено ни разу. Если пользователь введёт очень большое число, на выполнение программы уйдёт очень много времени.
Реже используется другая версия цикла while , известная как do ... while . Она работает аналогично, но условие завершения проверяется в конце, после выполнения тела цикла.
do
{
// Тело цикла
}
while ( условие ) ;
Поскольку условие проверяется только в конце, тело оператора do ... while выполняется всегда хотя бы один раз.
«Условие завершения цикла проверяется только в начале оператораwhile или в конце оператораdo . . . while . Даже если в какой-то момент оно перестанет быть справедливым, программа продолжит выполнение цикла до следующей проверки условия.»
Читать дальшеИнтервал:
Закладка: