Bagaimana cara keluar dari loop sementara di Java?

86

Apa cara terbaik untuk keluar / menghentikan loop sementara di Java?

Misalnya, kode saya saat ini sebagai berikut:

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

        // I need to exit here

    }
}
BalaB
sumber

Jawaban:

184

Penggunaan break:

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

Namun, jika kode Anda terlihat persis seperti yang Anda tentukan, Anda dapat menggunakan whileloop normal dan mengubah kondisi menjadi obj != null:

while (obj != null) {
    ....
}
dacwe
sumber
7
while(obj != null){
  // statements.
}
Riz
sumber
7

break adalah apa yang Anda cari:

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

alternatifnya, atur ulang loop Anda:

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

atau:

do {
    // do stuff
} while (obj != null);
Chris J.
sumber
3

Menemukan while...dokonstruksi dengan while(true)kode saya akan membuat mata saya berdarah. Gunakan whileloop standar sebagai gantinya:

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

Dan lihat tautan yang disediakan Yacoby dalam jawabannya , dan yang ini juga. Sungguh.

Pernyataan while dan do-while

Xavi López
sumber
3

Anda bisa melakukan beberapa pengujian logika kondisi dalam pemeriksaan while () menggunakan aturan yang sama seperti dalam pemeriksaan logika apa pun.

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

bekerja, seperti halnya

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

valid. Kondisional diperiksa pada setiap iterasi melalui loop. Segera setelah salah satu tidak cocok, loop while () akan keluar. Anda juga bisa menggunakan istirahat;

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
VikingGlen
sumber
2

Anda bisa menggunakan "break", yang sudah disebutkan dalam jawaban di atas. Jika Anda perlu mengembalikan beberapa nilai. Anda dapat menggunakan "return" seperti kode di bawah ini:

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

dalam hal ini, saat ini berada di bawah metode yang mengembalikan beberapa jenis nilai.

Omar Faroque Anik
sumber
ini adalah jawaban yang tepat dan usfeul!
Noor Hossain
2

Lihat Tutorial Java ™ oleh Oracle.

Tapi pada dasarnya, seperti kata dacwe , gunakan break.

Jika Anda bisa, sering kali lebih jelas untuk menghindari penggunaan break dan beri tanda centang sebagai ketentuan while loop, atau gunakan sesuatu seperti do while loop. Ini tidak selalu memungkinkan.

Yacoby
sumber
0

jika Anda menulis sementara (benar) . Artinya loop tidak akan berhenti dalam situasi apapun untuk menghentikan loop ini Anda harus menggunakan pernyataan break antara while block.

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;
        }
    }
}
Ankit Sood
sumber
0

Anda dapat menggunakan "break" untuk memutuskan loop, yang tidak akan memungkinkan loop memproses lebih banyak kondisi


sumber
0

Untuk keluar dari loop sementara, gunakan Break;Ini tidak akan memungkinkan untuk melakukan loop untuk memproses kondisi apa pun yang ditempatkan di dalam, pastikan untuk memiliki ini di dalam loop, karena Anda tidak dapat menempatkannya di luar loop

HussainOmer
sumber