2013-03-07 75 views
47

Trong mã của tôi, tôi có vòng lặp for lặp lại thông qua một phương thức mã cho đến khi nó đáp ứng điều kiện.Phá vỡ vòng lặp for trong Java

Có cách nào để thoát khỏi điều này cho vòng lặp không?

Vì vậy, nếu chúng ta xem xét mã bên dưới, điều gì sẽ xảy ra nếu chúng ta muốn thoát ra khỏi vòng lặp này khi chúng ta nhận được "15"?

public class Test { 

    public static void main(String args[]) { 

     for(int x = 10; x < 20; x = x+1) { 
     System.out.print("value of x : " + x); 
     System.out.print("\n"); 
     } 
    } 
} 

Outputs: 

value of x : 10 
value of x : 11 
value of x : 12 
value of x : 13 
value of x : 14 
value of x : 15 
value of x : 16 
value of x : 17 
value of x : 18 
value of x : 19 

Tôi đã thử những điều sau đây để avail không có:

public class Test { 

    public static void main(String args[]) { 
     boolean breakLoop = false; 
     while (!breakLoop) { 
      for(int x = 10; x < 20; x = x+1) { 
      System.out.print("value of x : " + x); 
      System.out.print("\n"); 
      if (x = 15) { 
       breakLoop = true; 
      } 
      } 
     } 
    } 
} 

Và tôi đã thử một vòng lặp:

public class Test { 

    public static void main(String args[]) { 
     breakLoop: 
      for(int x = 10; x < 20; x = x+1) { 
      System.out.print("value of x : " + x); 
      System.out.print("\n"); 
      if (x = 15) { 
       break breakLoop; 
      } 
     } 
    } 
} 

Cách duy nhất tôi có thể đạt được những gì tôi muốn là bằng cách phá vỡ vòng lặp for, tôi không thể thuê nó trong một thời gian, làm, nếu câu lệnh etc.

Chỉnh sửa:

Điều này chỉ được cung cấp làm ví dụ, đây không phải là mã tôi đang cố gắng triển khai. Bây giờ tôi đã giải quyết được vấn đề bằng cách đặt nhiều câu lệnh IF sau khi mỗi vòng lặp khởi tạo. Trước khi nó sẽ onlu nhảy ra khỏi một phần của vòng lặp do thiếu nghỉ;

+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html –

+0

yêu cầu của bạn không rõ ràng. khi nào bạn muốn thoát khỏi vòng lặp? –

+0

Xin lỗi tôi đã vội vã ví dụ một chút. Tất cả được sắp xếp bây giờ - là do phá vỡ vòng lặp sau đó nhập một vòng lặp khác. Cần nhiều IF và BREAK! – silverzx

Trả lời

120

break; là những gì bạn cần để thoát khỏi bất kỳ tuyên bố lặp nào như for, while hoặc do-while.

Trong trường hợp của bạn, nó sẽ là như thế này: -

for(int x = 10; x < 20; x++) { 
     // The below condition can be present before or after your sysouts, depending on your needs. 
     if(x == 15){ 
      break; // A unlabeled break is enough. You don't need a labeled break here. 
     } 
     System.out.print("value of x : " + x); 
     System.out.print("\n"); 
} 
16

Bạn có thể sử dụng:

for (int x = 0; x < 10; x++) { 
    if (x == 5) { // If x is 5, then break it. 
    break; 
    } 
} 
3

thế nào về

for(int k=0;k<10;k=k+2) 
     { 
      if(k==2) 
      { 
      break; 
      } 
      System.out.println(k); 
     } 

theo cách khác được dán nhãn loop

myloop: for (int i=0; i < 5; i++) { 
       for (int j=0; j < 5; j++) { 
       if (i * j > 6) { 
        System.out.println("Breaking"); 
        break myloop; 
       } 
       System.out.println(i + " " + j); 
       } 
      } 

cho lời giải thích thậm chí tốt hơn bạn có thể kiểm tra here

3
public class Test { 

public static void main(String args[]) { 

    for(int x = 10; x < 20; x = x+1) { 
    if(x==15) 
     break; 
    System.out.print("value of x : " + x); 
    System.out.print("\n"); 
    } 
} 
} 
14

Nếu vì một số lý do bạn không muốn sử dụng các hướng dẫn phá vỡ (nếu bạn nghĩ rằng nó sẽ phá vỡ dòng chảy của bạn đọc thời gian tiếp theo bạn sẽ đọc programm của bạn, ví dụ), bạn có thể thử như sau:

boolean test = true; 
for (int i = 0; i < 1220 && test; i++) { 
    System.out.println(i); 
    if (i == 20) { 
     test = false; 
    } 
} 

Vòng lặp thứ hai của vòng lặp for là một thử nghiệm boolean. Nếu kết quả của thử nghiệm là đúng, vòng lặp sẽ dừng lại. Bạn có thể sử dụng nhiều hơn chỉ là một bài kiểm tra toán học đơn giản nếu bạn muốn. Nếu không, nghỉ ngơi đơn giản cũng sẽ làm các trick, như những người khác nói:

for (int i = 0; i < 1220 ; i++) { 
    System.out.println(i); 
    if (i == 20) { 
     break; 
    } 
} 
Các vấn đề liên quan