2011-12-25 36 views
5

Hãy xem vòng lặp do-while sau đây. Nó khá rõ ràng và không có câu hỏi về nó.các vòng lặp trong khi tiếp tục và có và không có nhãn trong Java

do 
{ 
    System.out.println("Hello world"); 
    break; 
} while(false); 

Đó là khá rõ ràng và chỉ hiển thị chuỗi Hello world trên giao diện điều khiển và thoát.


Hiện tại, phiên bản sau do-while dường như bị kẹt vào vòng lặp vô hạn nhưng không. Nó cũng hiển thị chuỗi Xin chào thế giới trên bảng điều khiển và thoát âm thầm.

do 
{ 
    System.out.println("Hello world"); 
    continue; 
} while(false); 

Hãy xem thêm một phiên bản của do-while với một nhãn như sau.

label:do 
{ 
    System.out.println("Hello world"); 
    continue label; 
} while(false); 

Nó quá hiển thị thông báo Hello world trên giao diện điều khiển và thoát. Nó không phải là một vòng lặp vô hạn vì nó có vẻ có nghĩa là tất cả các phiên bản trong trường hợp này, hoạt động phần nào theo cùng một cách. Làm sao?

Trả lời

9

Tuyên bố continue có nghĩa là "tiến hành logic điều khiển vòng lặp cho lần lặp tiếp theo". Nó không có nghĩa là bắt đầu lặp lại vòng lặp tiếp theo vô điều kiện.

(Nếu có ai muốn tham khảo JLS về điều này, phần có liên quan là JLS 14.16. Tuy nhiên, phần này của đặc điểm kỹ thuật hơi phức tạp và phụ thuộc vào thông số kỹ thuật của các cấu trúc khác;/catch/finally)

+0

Hm, điều này có lẽ diễn đạt rõ ràng hơn câu trả lời của tôi. –

4

Cũng giống như với một vòng lặp for, các while có điều kiện trong một do-whileluôn kiểm tra trước khi vào cơ thể loop (đèo đầu tiên sau khi thông qua, tất nhiên). Và, giống như với một vòng lặp for, continue không bao giờ làm cho biểu thức chấm dứt bị bỏ qua.

3

continue được kiểm tra biểu thức boolean trước khi thực sự tiếp tục, như hướng dẫn nói:.

các lệnh continue bỏ qua lần lặp hiện tại của một cho, thời gian, hoặc do-while vòng lặp. Biểu mẫu không gắn nhãn bỏ qua đến cuối thân của vòng lặp trong cùng và đánh giá biểu thức boolean điều khiển vòng lặp.

Để biết thêm chi tiết có một cái nhìn tại địa chỉ: branching semantics

Các vấn đề liên quan