Lời nói đầu:
Chào các bạn, trong lập trình chúng ta thường hay dùng i++ hoặc ++i trong các vòng lặp for, while, do … while. Vậy nó là gì? Tại sao phải dùng nó? Sự khác nhau giữa chúng như thế nào? Đã có không hề ít người thắc mắc về điều đó, vậy hôm nay tôi và các bạn cùng nhau tìm hiểu nhé.
Mục đích bài học:
Sau bài học này, các bạn sẽ nắm rõ về ++ và – – cách sử dụng chúng trong lập trình.
Kiến thức cần có để tiếp tục:
Nắm được lập trình hướng cấu trúc, các vòng lặp.
Ý nghĩa của dấu ++ và – – trong lập trình:
Bản chất của phép ++ là sự tăng lên 1 đơn vị so với giá trị đi theo nó.
i++ tương đương với i + = 1 hoặc i = i + 1.
tương tự như vậy cho phép – – là sự giảm đi 1 đơn vị so với giá trị theo nó.
i – – tương đương với i – = 1 hoặc i = i -1.
Đối với phép toán ++i hay – – i củng như vậy nhưng chỉ khác nhau về thứ tự thực hiện.
Hãy cùng xét ví dụ trong hình bên (hình 1).
Đầu tiên, khởi tạo một biến i với giá trị là 0 và kiểu dữ liệu là int.
Xét bên i++:

Khi thực hiện lệnh in ra màn hình i++ thìlệnh in ra màn hình được thực hiện trước, lấy giá trị ban đầu in ra nên kết quả là 0. Sau đó, i sẽ được tăng lên 1 đơn vị sẽ có giá trị mới là 1.
Xét bên ++i:
Khi thực hiện lệnh in, thì lệnh ++i đã được thực hiện trước làm i có giá trị mới là 1. Nên khi in ra, dòng lệnh lấy giá trị mới được tạo ra để in ra màn hình.
Bấy giờ chúng ta sẽ thêm hai câu lệnh in ra màn hình vào ví dụ trên để hiểu rõ hơn nhé (Hình 2):
Tiếp theo như ở trên, ta xét bên i++:

Lúc đầu, dòng lệnh đầu tiên in ra màn hình là 0. Dòng lệnh tiếp theo sẽ in ra màn hình giá trị 1.
Như giải thích ở trên, nó sẽ cộng giá trị của i lên sau khi in ra.
Xét bên ++i:
Ban đầu, i sẽ được in ra với giá trị là 1 bởi vì đã được cộng trước. Sau khi thêm, giá tị in ra vẫn là 1 bởi vì giá trị i bây giờ không thay đổi vì không có câu lệnh nào làm thay đổi giá trị của i cả.
Như vậy, lúc này i sẽ giữ nguyên giá trị.
Chúng ta hãy cùng xét đoạn code sau để hiểu rõ hơn .
Xét đoạn Java code sau:
1
2
3
4
5
6
7
8
9
|
public static void main(String[] args){
int i = 5;
System.out.println(” Gia tri ban dau cua i la: “+i);
System.out.println(” Giá trị của i++ la: “+(i++));
System.out.println(” Giá trị của i– la: “+(i—));
System.out.println(” Gia tri cua i hien tai la: “+i);
System.out.println(” Gia tri cua ++i la: “+i);
System.out.println(” Gia tri cuoi cung cua i la: “+i);
}
|
Output:
1
2
3
4
5
6
|
Gia tri ban dau cua i la: 5
Gia tri i++ la: 5
Gia tri i— la: 6
Gia tri cua i hien tai la: 5
Gia tri cua ++i la: 6
Gia tri cuoi cung cua i la: 6
|
Vì sao lại như vậy? Các bạn hãy xem:
Tại dòng code thứ 3: lúc này, giá trị i không hề thay đổi.
Tại dòng code thứ 4: giá trị của i khi xuất ra vẫn là 5. Nhưng sau khi xuát i được cộng thêm vào một đơn vị là 6.
Tại dòng code thứ 5: giá trị của i lúc này vẫn là 6.
Tại dòng code thứ 6: giá trị hiện tai của i lúc này là 5. Vì dòng code trên, i bị giảm đi 1 đơn vị.
Tại dòng code thứ 7: giá trị i lại được tăng lên một đơn vị nhờ vào phép toán ++i.
Tại dòng code thứ 8: giá trị cuối cùng bằng với giá trị ở dòng code thứ 7 là 6.
Tổng kết:
Như vậy, phép toán i++ sẽ thực hiện câu lệnh trước rồi sau đó mới thực hiện phép toán sau. Còn ++i thì ngược lại, thực hiện cộng trước rồi mới thực hiện câu lệnh. Ta sử dụng lý thuyết này cho cả phép toán – -.
Tuy tôi đã giải thích rõ ràng như trên nhưng củng không ít bạn vẫn còn thắc mắc, các bạn hãy đọc thật kỹ để vận dụng được hai phép toán này một cách chính xác và không bị rối. Chúc các bạn thành công!
Bạn muốn học lập trình hãy liên hệ ngay với Mỹ Vân để được nhận ưu đãi từ học viện nhé
Không có nhận xét nào:
Đăng nhận xét