Trong Java chúng ta có 7 toán tử toán học bao gồm:
- +: cộng
- –: trừ
- *: nhân
- /: chia
- %: chia lấy dư
- ++: cộng cộng
- —: trừ trừ
Trong đó cộng, trừ, nhân, chia, chia lấy dư thì dễ quá rồi, chắc các bạn ai cũng có thể nắm được, nên trong bài viết này mình chỉ tập trung nói về hai toán từ toán học còn lại là ++ và — mà thôi.
Toán tử ++ và — là những toán tử đơn, có tác dụng tăng hoặc giảm giá trị của biến khoảng giá trị là 1. Hai toán tử này có thể nằm trước hoặc sau tên biến.
Ví dụ:
1 2 |
int a = 100; a++; |
Hoặc
1 2 |
int b = 12; ++b; |
Khi các toán tử đơn này được sử dụng trong một biểu thức bất kỳ thì vị trí của nó trước hay sau tên biến sẽ quyết định giá trị của biến đi kèm với nó tăng hay giảm trước khi biểu thức đó được tính toán. Nếu toán tử đơn này nằm phía trước tên biến thì giá trị của biến sẽ tăng hoặc giảm 1 trước khi biểu thức được tính toán, còn nếu chúng nằm ở sau tên biến thì giá trị của biến sẽ tăng hoặc giảm sau khi biểu thức được tính toán.
Ví dụ, mình có một biểu thức có sử dụng toán từ ++ như sau:
1 2 3 |
int a = 20; int b = 9; int c = b - ++a; |
Trong biểu thức int c = b – ++a thì toán tử đơn ++ nằm phía trước biến a, do đó giá trị của a trong biểu thức này sẽ tăng lên 1 trước khi biểu thức được tính toán. Nghĩa là, ta có thể viết lại như sau:
1 |
int c = 9 - 21; |
Kết quả c sẽ là -12. Và sau khi biểu thức kết thúc, giá trị của a sẽ là 21.
Tương tự, chúng ta hãy cùng xem xét ví dụ với toán tử — như sau:
1 2 3 |
int a = 9; int b = 20; int c = b - a--; |
Kết quả sau khi chạy biểu thức này thì c sẽ bằng 11 và a sẽ bằng 8.
Một ví dụ kinh điển mà chúng ta có thể xem xét nữa là:
1 2 3 |
int a = 10; a = a-- + a + a++ - --a + a++; System.out.println(a); |
Theo các bạn, kết quả sẽ như thế nào?