Константы и переменные, выражения
Константа, переменная — это базовые понятия в любом языке программирования. Дадим им определения.
Константа — это величина, которая при выполнении программы остаётся неизменной.
Переменная — это ячейка памяти для временного хранения данных. Предполагается, что в процессе выполнения программы значения переменных могут изменяться.
Описание и инициализация переменных
Прежде чем использовать в программе какую-то переменную, надо дать ей описание, то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:
int k; // это переменная целого типа int
double x; // это переменная вещественного типа удвоенной точности
Если имеется несколько переменных одного типа, то допускается их описание через запятую в одном операторе, например:
Чтобы избежать такой ошибки, Бьерн Страуструп рекомендует инициализировать переменные, то есть не просто выделять память под переменные, но и задавать им при этом необходимые значения. Например:
double a=3, b=4, c=5;
Задание и использование констант
Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:
25 — константа целого типа;3.14 — вещественная константа;'A' — символьная константа.
Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:
int k=25; // переменная k инициализирована константой — целым числом 25.
В ряде случаев константе удобнее дать имя и использовать её далее по имени. Обычно это делается для математических или физических констант.
Что такое выражение?
Выражение состоит из одного или более операндов, в простейшем случае – из одного литерала или объекта. Результатом такого выражения является r-значение его операнда. Например:
void mumble() {
3.14159;
"melancholia";
upperBound;
}
Результатом вычисления выражения 3.14159 станет 3.14159 типа double, выражения "melancholia" – адрес первого элемента строки типа const char*. Значение выражения upperBound – это значение объекта upperBound, а его типом будет тип самого объекта.
Выражение может являться составным, то есть объединять в себе несколько подвыражений
Если посмотреть на этот пример внимательно, можно заметить, что порядок выполнения операций очень важен. Скажем, если бы операция разыменования ptr производилась до его сравнения с 0, в случае нулевого значения ptr это скорее всего вызвало бы крах программы. В случае операции И порядок действий строго определен: сначала оценивается левый операнд, и если его значение равно false, правый операнд не вычисляется вовсе. Порядок выполнения операций определяется их приоритетами, не всегда очевидными, что вызывает у начинающих программистов на С и С++ множество ошибок. Приоритеты будут приведены в разделе 4.13, а пока мы расскажем обо всех операциях, определенных в С++, начиная с наиболее привычных.
Логические операторы.
Операторы бывают трех типов:
1. Унарные - применяется к одному операнду. Например: ++a;
2. Бинарные - применяется к двум операндам. Например: a+b;
3. Тернарные - применяется с трем операндам. Например: условие ? действие А : действие Б; В данном случаи, если условие верно выполняется действие А, иначе Б.
Логические операторы:
1. Оператор "НЕ" - !
Например: a!=5; // a не равно 5
!(5<3) // 5 не меньше 3
2. Оператор "И" - &&
Возвращает истину только тогда, когда все выражение объеденные оператором "И" будут истинной
true&&true=true
true&&fasle=false
false&&true=false
false&&fasle=false
3. Оператор "ИЛИ" - ||
Возвращает истину, если хотя бы одно из выражений истина.
true||true=true
true||false=true
false||true=true
false||false=false
Операции сравнения:
1. Больше ">"2. Меньше "<"3. Больше или равно ">="4. Меньше или равно "<="5. Не равно "!="6. Равно "=="
Оператор if
В переводе с английского означает ЕСЛИ, т.е. если условие истина выполнять действие, иначе пропустить, или выполнить другое действие.
Синтаксис: if(условие) {для 2 и более действий нужны фигурные скобки;} else {действие Б;}.
Конструкция else не обязательна.
Оператор if можно сколько угодно раз вкладывать в самого себя, таким образом можно предусмотреть множество различных ситуаций и логически выбрать какую часть кода нужно выполнять
Ветвления, условия.
Встречаются ситуации, когда программе нужно выбрать, какую операцию ей выполнить, в зависимости от определенного условия.
К примеру, мы вводим с клавиатуры целое число. Если это число больше десяти, то программа должна выполнить одно действие, иначе — другое. Реализуем этот алгоритм на C++ с помощью конструкции ветвления.
Оператор if
Оператор if служит для того, чтобы выполнить какую-либо операцию в том случае, когда условие является верным. Условная конструкция в С++ всегда записывается в круглых скобках после оператора if.
Внутри фигурных скобок указывается тело условия. Если условие выполнится, то начнется выполнение всех команд, которые находятся между фигурными скобками.
Пример конструкции ветвления
if (num < 10) { // Если введенное число меньше 10.
cout << "Это число меньше 10." << endl;
} else { // иначе
cout << "Это число больше либо равно 10." << endl;
}
Здесь говорится: «Если переменная num меньше 10 — вывести соответствующее сообщение. Иначе, вывести другое сообщение».
Каждому оператору if соответствует только один оператор else. Совокупность этих операторов — else if означает, что если не выполнилось предыдущее условие, то проверить данное. Если ни одно из условий не верно, то выполняется тело оператора else.
Если после оператора if, else или их связки else if должна выполняться только одна команда, то фигурные скобки можно не ставить