6. Выполнение ввода/вывода данных и присваивание значений
После компиляции программы ее можно запустить на выполнение. Результат выполнения на экране будет выглядеть примерно так:
Введите текущий год и нажмите ENTER.
2000
Введите свой возраст (в годах).
21
Введите год, для которого вы хотите узнать свой возраст.
2017
В 2017 году вам будет 38
Первая, третья, пятая и седьмая строки выдаются на экран программой с помощью следующего оператора:
cout << Выражение1 << Выражение2 << ... << ВыражениеN;
Этот оператор выводит на экран сообщение:
Выражение1 Выражение2 ... ВыражениеN
Последовательность операторов
cout << Выражение1;
cout << Выражение2;
...
...
cout << ВыражениеN;
приводит к аналогичному результату. Если между выражениями требуется вставить пробелы или новые строки, то их нужно указать явно, с помощью символов " " и "\n" соответственно.
Числа, показанные выше в примере выдачи на экран полужирным шрифтом, были напечатаны пользователем. В показанном примере оператор
cin >> year_now;
приводит к тому, что переменной year_now присваивается значение 2000. Это происходит после того, как пользователь напечатает "2000" и нажмет клавишу Enter. В программе есть еще места, где переменным присваиваются значения, в том числе оператор присваивания:
another_age = another_year - (year_now - age_now);
Операция "=" означает "присвоить переменной, стоящей слева от знака равенства, значение, указанное справа". Проверка на равенство в Си++ обозначается двойным символом: "==".
7. Управление порядком выполнения команд с помощью оператора if
В нескольких последних строках программы (до строки "return 0") записано:
if (another_age >= 0)
{
cout << "В " << another_year << " году вам будет ";
cout << another_age << "\n";
}
else
{
cout << "В " << another_year << " вы еще не родились!\n";
}
Оператор ветвления (условный оператор) "if...else..." выглядит примерно одинаково во всех процедурных языках программирования. В Си++ он называется просто оператором if, и его общая структура такова:
if ( условие )
{
Оператор1;
...
...
ОператорN;
}
else
{
ОператорN+1;
...
...
ОператорN+M;
}
Часть "else (иначе)" в операторе if необязательна. Более того, если после "if ( условие )" стоит только один оператор, то можно опустить фигурные скобки и записать оператор так:
if ( условие )
Оператор1;
В программах условные операторы часто встречаются группами, например:
...
...
if (total_test_score < 50)
cout << "Вы не прошли тест. Выучите материал как следует.\n";
else if (total_test_score < 65)
cout << "Вы прошли тест со средним результатом.\n";
else if (total_test_score < 80)
cout << "Вы хорошо выполнили тест.\n";
else if (total_test_score < 95)
cout << "Вы показали отличный результат.\n";
else
{
cout << "Вы сдали тест нечестно!\n";
total_test_score = 0;
}
...
...
Приведенный фрагмент программы может показаться довольно сложным. Тем не менее, он соответствует правилам Си++. Это легко понять, если обратиться к синтаксической диаграмме оператора if (рис. 4).
В овальных или круговых рамках на синтаксических диаграммах указываются элементы языка, которые буквально так и воспроизводятся в исходном тексте программ. В прямоугольных рамках приведены элементы, требующие дальнейшего определения, возможно, с помощью других синтаксических диаграмм. Набор таких диаграмм служит формальным описанием синтаксиса языка программирования.
Обратите внимание, что на рис. 4 отсутствует символ ";" и разделители "{}". Эти элементы языка включены в определение (и синтаксическую диаграмму) для обобщенного понятия "оператор языка Си++".
Рис. 4. Синтаксическая диаграмма оператора if.
При обработке приведенного фрагмента программы компилятор Си++ трактует весь текст, выделенный ниже полужирным шрифтом, как один оператор после первого слова else.
...
...
if (total_test_score < 50)
cout << "Вы не прошли тест. Выучите материал как следует.\n";
else if (total_test_score < 65)
cout << "Вы прошли тест со средним результатом.\n";
else if (total_test_score < 80)
cout << "Вы хорошо выполнили тест.\n";
else if (total_test_score < 95)
cout << "Вы показали отличный результат.\n";
else
{
cout << "Вы сдали тест нечестно!\n";
total_test_score = 0;
}
...
...
|