Trong C/C++, ý nghĩa sau đây là gì?"for (;;)" có nghĩa là gì?
for(;;){
...
}
Rất tiếc, tôi không thể Google và nhận kết quả có ý nghĩa.
Trong C/C++, ý nghĩa sau đây là gì?"for (;;)" có nghĩa là gì?
for(;;){
...
}
Rất tiếc, tôi không thể Google và nhận kết quả có ý nghĩa.
Đó là vòng lặp vô hạn, tương đương với while(true)
. Khi không có điều kiện chấm dứt được cung cấp, điều kiện mặc định là true
.
Lý do tại sao người ta viết 'for (;;)' thay vì 'while (true)' là vì một số trình biên dịch sẽ phát hành cảnh báo cho biểu thức boolean không đổi trong 'while (true)'. Ví dụ, Visual C++ cho tôi một "cảnh báo C4127: biểu thức điều kiện là hằng số" với 'while (true)'. –
Nhưng nó hoàn toàn giống nhau về chức năng. –
@Trong silico: Nó cũng có bốn ký tự ngắn hơn, nếu bạn tham gia vào toàn bộ việc chơi gôn. –
Lặp lại cho đến khi một số câu hỏi break
, exit
, throw
v.v. bên trong vòng lặp thực thi. Về cơ bản, bạn có thể nghĩ ra một vòng lặp for
như bao gồm:
for (setup; test; advance)
...
Nếu "test" rỗng nó coi là true
, và vòng lặp tiếp tục chạy. Rỗng "thiết lập" và "tạm ứng" chỉ đơn giản là không làm gì cả.
Trong C và C++ (và một vài ngôn ngữ khác là khá tốt), các for
vòng có ba phần:
Ví dụ:
for (i = 1, accum = 0; i <= 10; i++)
accum += i;
sẽ thêm lên những con số từ 1 đến 10, bao gồm.
Nó tương đương như sau:
i = 1;
accum = 0;
while (i <= 10) {
accum += i;
i++;
}
Tuy nhiên, không có gì đòi hỏi rằng các phần trong một tuyên bố for
thực chứa bất cứ điều gì, và nếu điều kiện lặp là mất tích, nó giả định là đúng.
Vì vậy, các for(;;)
vòng lặp về cơ bản chỉ có nghĩa là:
Nói cách khác, đó là vòng lặp vô hạn.
Vòng lặp vô hạn tiếp tục cho đến khi có câu lệnh break(), exit() hoặc goto.
Vòng lặp một mình mãi mãi. – Swiss
Xem thêm http://stackoverflow.com/questions/4031636/what-is-the-for-syntax-in-this-code/4031654#4031654 và http://stackoverflow.com/questions/2737550/what-does -for-mean-in-perl/2737623 # 2737623 - Tôi đã không tính chúng như là lừa đảo vì chúng là PHP/Perl nhưng tôi sẽ ngạc nhiên nếu điều này chưa được hỏi trước đây.Tuy nhiên, kể từ khi tôi không thể tìm thấy một C, bạn đang an toàn cho bây giờ :-) – paxdiablo
Tôi không nghĩ rằng tôi sẽ là người đầu tiên để hỏi, nhưng tôi đã cố gắng tìm kiếm trước khi tôi hỏi. Không có từ khóa để tìm kiếm, và tôi sẽ thừa nhận, tôi là một chút lười biếng. – sas4740