2016-02-04 14 views
6

Có một rất nhiều tùy chọn có sẵn cho vòng lặp vô hạn nhưng điều này chủ yếu sử dụng while(true) or for(;;)Java: Infinite Loop

Tôi biết while(true) là lựa chọn tốt nhất, vì nó là dễ hiểu hơn.

Nhưng tôi muốn sử dụng for(;;).

Tôi muốn biết điều gì đang xảy ra bên trong của for loop khi tôi sử dụng hai vòng lặp ; trong vòng lặp.

for(;;)

Dấu chấm phẩy có nghĩa là tuyên bố trống. Nhưng làm thế nào nó hoạt động khi chúng ta sử dụng bên trong của for loop để thực hiện vô hạn?

+2

Tôi không biết câu trả lời cho câu hỏi này. Nhưng tôi biết cách trả lời nó. Tôi sẽ biên dịch một chương trình java đơn giản bằng cách sử dụng cấu trúc và sau đó kiểm tra nó bằng một trình dịch ngược như javap. Tôi sẽ không ngạc nhiên nếu 'while (true)' và 'for (;;)' tạo cùng một mã byte. Tôi cũng sẽ không ngạc nhiên nếu chúng khác nhau. – emory

+0

@Shiladittya xin vui lòng xem xét chấp nhận câu trả lời của tôi nếu nó giải quyết câu hỏi của bạn. Nếu không, tôi sẽ rất vui khi xây dựng thêm – Idos

Trả lời

3

Đây là những gì sẽ xảy ra:

for (initialization statement; condition check; increment/decrement) 
    // loop body; 

Với for(;;):

  • Không có khởi tạo.
  • Không có kiểm tra tình trạng.
  • Không có tăng/giảm.

Do đó nó sẽ chạy mãi mãi, chính xác như while(true).