Đầu ra là gì? #include
Trả lời:
Đáp án đúng: A
Đoạn code này minh họa cách biến `i` được khai báo lại trong mỗi lần lặp của vòng `while`.
- **`int i = 3;`**: Khai báo biến `i` bên ngoài vòng lặp `while`, biến này quyết định số lần lặp.
- **`while (i--)`**: Vòng lặp `while` tiếp tục cho đến khi `i` (bên ngoài) giảm xuống 0. `i--` vừa kiểm tra giá trị của `i` vừa giảm `i` đi 1 sau mỗi lần lặp. Do đó, vòng lặp sẽ chạy 3 lần.
- **`int i = 100;`**: Bên trong vòng lặp, một biến `i` *khác* được khai báo và khởi tạo với giá trị 100. Đây là một biến cục bộ, chỉ có phạm vi bên trong vòng lặp `while`.
- **`i--;`**: Giá trị của biến `i` cục bộ (bên trong vòng lặp) giảm đi 1, trở thành 99.
- **`printf("%d ", i);`**: In giá trị của biến `i` cục bộ (bên trong vòng lặp), tức là 99.
Như vậy, trong mỗi lần lặp, biến `i` bên trong vòng lặp được gán giá trị 100, giảm xuống 99 và in ra. Vòng lặp chạy 3 lần, nên đầu ra sẽ là "99 99 99".