Bỏ qua để đến nội dung

Biểu thức số học (Arithmetic Expression)

Biểu thức số học là sự kết hợp giữa các giá trị, biến và toán tử để tạo ra một giá trị mới.

Giống như trong toán học thông thường, C++ tuân theo thứ tự ưu tiên: ngoặc đơn → nhân/chia/chia dư → cộng/trừ, tính từ trái sang phải khi cùng độ ưu tiên.

#include <iostream>
int main() {
int result1 = 2 + 3 * 4; // 14 (nhân trước)
int result2 = (2 + 3) * 4; // 20 (ngoặc trước)
int result3 = 10 - 4 / 2; // 8 (chia trước: 10 - 2)
int result4 = (10 - 4) / 2; // 3
std::cout << result1 << " " << result2 << " "
<< result3 << " " << result4 << std::endl;
return 0;
}
int a = 5, b = 10, c = 2;
int result = (a + b) * c - (b / c);
// = (15) * 2 - 5 = 30 - 5 = 25
std::cout << result << std::endl; // 25

Khi một biểu thức có cả intdouble, C++ tự động chuyển kiểu int thành double trước khi tính (usual arithmetic conversion), khác với việc chia hai số int (xem bài trước).

int a = 5;
double b = 2.0;
double result = a + b; // a được chuyển thành 5.0 trước khi cộng
std::cout << result << std::endl; // 7

Biểu thức số học thường được dùng trực tiếp trong điều kiện rẽ nhánh hoặc vòng lặp:

int age = 20;
if (age % 2 == 0) {
std::cout << "So chan" << std::endl;
}
  • Thứ tự ưu tiên: ngoặc đơn > nhân/chia/chia dư > cộng/trừ
  • Dùng ngoặc () để làm rõ và kiểm soát thứ tự tính toán, tránh nhầm lẫn
  • Khi trộn intdouble trong biểu thức, C++ tự động chuyển int sang double
  • Luôn để ý biểu thức chia số nguyên có thể gây mất phần thập phân ngoài ý muốn