2011-10-31 46 views
55

Cách tốt nhất để thoát/chấm dứt vòng lặp while trong Java là gì?Làm thế nào để thoát khỏi một vòng lặp while trong Java?

Ví dụ, mã của tôi hiện nay là như sau:

while(true){ 
    if(obj == null){ 

     // I need to exit here 

    } 
} 
+29

ngắt; nhưng nghiêm túc, bạn nên nghiên cứu thêm một chút những điều cơ bản. – stivlo

+6

-1 Không có nỗ lực tìm kiếm ... –

+23

Vì đây dường như không phải là một bản sao, tôi thực sự sẽ gọi đó là một câu hỏi hay. Tìm thấy điều này dễ chịu hơn rất nhiều so với việc phải sắp xếp thông qua một số hướng dẫn Java từ những năm 90. – twiz

Trả lời

136

Sử dụng break:

while (true) { 
    .... 
    if (obj == null) { 
     break; 
    } 
    .... 
} 

Tuy nhiên, nếu mã của bạn trông chính xác như bạn đã xác định bạn có thể sử dụng vòng lặp bình thường while và thay đổi điều kiện thành obj != null:

while (obj != null) { 
    .... 
} 
+0

Thanks guys, kể từ obj đã được sử dụng trong vòng lặp tôi cần phải sử dụng đầu tiên trong khi (true). Cảm ơn rất nhiều vì đề xuất của bạn. Thnks cảm ơn .. – BalaB

+8

@bala nếu câu trả lời đã giải quyết được vấn đề của bạn, vui lòng đánh dấu nó là được chấp nhận để giúp những người khác có thể gặp phải câu hỏi. – glosrob

+0

@BalaB chưa được chấp nhận? –

2

Hãy xem Java™ Tutorials của Oracle.

Nhưng về cơ bản, là dacwe said, hãy sử dụng break.

Nếu bạn có thể thường xuyên rõ ràng hơn để tránh sử dụng ngắt và đặt kiểm tra làm điều kiện của vòng lặp while hoặc sử dụng thứ gì đó giống như vòng lặp do while. Điều này không phải lúc nào cũng có thể.

6
while(obj != null){ 
    // statements. 
} 
3

break là những gì bạn đang tìm kiếm:

while (true) { 
    if (obj == null) break; 
} 

cách khác, tái cấu trúc vòng lặp của bạn:

while (obj != null) { 
    // do stuff 
} 

hay:

do { 
    // do stuff 
} while (obj != null); 
3

Tìm một while...do xây dựng với while(true) trong mã của tôi sẽ làm cho đôi mắt của tôi chảy máu. Sử dụng một vòng lặp while tiêu chuẩn thay vì:

while (obj != null){ 
    ... 
} 

Và hãy nhìn vào các liên kết được cung cấp trong Yacoby answer của mình, và điều này quá. Nghiêm túc.

The while and do-while Statements

1

Bạn có thể làm nhiều điều kiện kiểm tra logic trong khi() kiểm tra bằng cách sử dụng quy tắc tương tự như trong bất kỳ kiểm tra logic.

while (obj != null) { 
    // do stuff 
} 

công trình, cũng như

while (value > 5 && value < 10) { 
    // do stuff 
} 

là hợp lệ. Các điều kiện được kiểm tra trên mỗi lần lặp qua vòng lặp. Ngay khi không khớp, vòng lặp while() bị thoát. Bạn cũng có thể sử dụng break;

while (value > 5) { 
    if (value > 10) { break; } 
    ... 
} 
0

Bạn có thể sử dụng "ngắt", đã được đề cập trong các câu trả lời ở trên. Nếu bạn cần trả lại một số giá trị.Bạn có thể sử dụng "trả lại" như mã bên dưới:

while(true){ 
     if(some condition){ 
      do something; 
      return;} 
     else{ 
      do something; 
      return;} 
      } 

trong trường hợp này, trong khi phương thức này trả về một số loại giá trị.

0

nếu bạn viết khi (đúng). nó có nghĩa là vòng lặp sẽ không dừng lại trong bất kỳ tình huống nào để dừng vòng lặp này, bạn phải sử dụng lệnh break trong khi khối.

package com.java.demo; 

/** 
* @author Ankit Sood Apr 20, 2017 
*/ 
public class Demo { 

    /** 
    * The main method. 
    * 
    * @param args 
    *   the arguments 
    */ 
    public static void main(String[] args) { 

    /* Initialize while loop */ 
    while (true) { 

     /* 
     * You have to declare some condition to stop while loop 

     * In which situation or condition you want to terminate while loop. 
     * conditions like: if(condition){break}, if(var==10){break} etc... 
     */ 

     /* break keyword is for stop while loop */ 

     break; 

    } 
    } 

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