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

Các toán tử số học

Toán tử Ý nghĩa Ví dụ
+ Cộng 5 + 27
- Trừ 5 - 23
* Nhân 5 * 210
/ Chia 5 / 22 (chia số nguyên)
% Chia lấy dư (modulo) 5 % 21
int a = 10, b = 3;
System.out.println(a + b); // 13
System.out.println(a - b); // 7
System.out.println(a * b); // 30
System.out.println(a / b); // 3 (kết quả int, phần thập phân bị cắt bỏ)
System.out.println(a % b); // 1 (số dư)

⚠️ Chia hai số nguyên (int / int) cho ra kết quả int - phần thập phân bị cắt bỏ hoàn toàn, không làm tròn. Nếu cần kết quả thập phân, ít nhất một toán hạng phải là double/float (xem chi tiết ở bài “What the Java” về toán tử chia số nguyên).

System.out.println(7 / 2); // 3 (int / int)
System.out.println(7 / 2.0); // 3.5 (int / double -> double)
System.out.println((double) 7 / 2); // 3.5 (ép kiểu trước khi chia)
int x = 5;
x++; // Tương đương x = x + 1
x--; // Tương đương x = x - 1

Có hai dạng: tiền tố (prefix)hậu tố (postfix), khác nhau khi dùng trong biểu thức:

int a = 5;
int b = ++a; // Prefix: tăng a trước, RỒI mới gán -> a=6, b=6
System.out.println(a + " " + b); // 6 6
int c = 5;
int d = c++; // Postfix: gán giá trị CŨ của c trước, rồi mới tăng -> c=6, d=5
System.out.println(c + " " + d); // 6 5

3. Toán tử gán kết hợp (compound assignment)

Phần tiêu đề “3. Toán tử gán kết hợp (compound assignment)”
int n = 10;
n += 5; // n = n + 5 -> 15
n -= 3; // n = n - 3 -> 12
n *= 2; // n = n * 2 -> 24
n /= 4; // n = n / 4 -> 6
n %= 4; // n = n % 4 -> 2
  • Các toán tử số học: +, -, *, /, %
  • Chia hai số int cho kết quả int, cắt bỏ phần thập phân - cần ép kiểu double nếu muốn kết quả thập phân
  • ++/-- có dạng prefix (tăng trước, dùng sau) và postfix (dùng trước, tăng sau) - khác nhau khi dùng trong biểu thức
  • Toán tử gán kết hợp (+=, -=, *=, /=, %=) giúp viết gọn hơn