Операторы и выражения
Учим C++ считать, сравнивать значения и принимать решения
Главная идея: Оператор — это символ, который говорит C++ что-то сделать со значениями, например
+ для сложения или < для сравнения. Когда ты соединяешь значения и операторы, получается выражение — и каждое выражение вычисляется до одного результата.
К концу урока ты сможешь:
- использовать арифметические операторы
+ - * / %, - сравнивать значения с помощью
== != < > <= >=, - объединять условия с помощью
&& || !, - предсказывать, как вычисляется выражение,
- объяснить, почему
7 / 2равно3, а7.0 / 2равно3.5.
1. Арифметические операторы
Они выполняют обычную математику. Единственный необычный — это % (называется остаток от деления, или модуло): он даёт остаток после деления. Например, 7 % 3 равно 1, потому что 3 помещается в 7 два раза, и остаётся 1.
#include <iostream>
using namespace std;
int main() {
int a = 7, b = 3;
cout << a + b << endl; // 10
cout << a - b << endl; // 4
cout << a * b << endl; // 21
cout << a / b << endl; // 2 (integer division)
cout << a % b << endl; // 1 (remainder)
return 0;
}
Вывод:
10
4
21
2
1
Обрати внимание:
7 / 3 дало 2, а не 2.33. Это объясним дальше.2. Целочисленное деление против деления с плавающей точкой
На этом спотыкается почти каждый новичок. В C++ тип чисел решает, каким будет деление:
- Если обе стороны — целые числа (
int), C++ выполняет целочисленное деление и отбрасывает дробную часть. Поэтому7 / 2равно3, а не3.5. - Если хотя бы одна сторона —
double(число с десятичной точкой), C++ сохраняет десятичные знаки. Поэтому7.0 / 2равно3.5.
#include <iostream>
using namespace std;
int main() {
cout << 7 / 2 << endl; // 3 both are int
cout << 7.0 / 2 << endl; // 3.5 one is double
cout << 7 / 2.0 << endl; // 3.5 one is double
double x = 7;
cout << x / 2 << endl; // 3.5 x is double
return 0;
}
Вывод:
3
3.5
3.5
3.5
Чтобы получить дробный ответ, сделай одно значение
double — например, напиши 7.0 вместо 7.