วิธีที่ดีที่สุดในการออก / สิ้นสุด while loop ใน Java คืออะไร?
ตัวอย่างเช่นรหัสของฉันในปัจจุบันมีดังนี้:
while(true){
if(obj == null){
// I need to exit here
}
}
วิธีที่ดีที่สุดในการออก / สิ้นสุด while loop ใน Java คืออะไร?
ตัวอย่างเช่นรหัสของฉันในปัจจุบันมีดังนี้:
while(true){
if(obj == null){
// I need to exit here
}
}
คำตอบ:
ใช้break
:
while (true) {
....
if (obj == null) {
break;
}
....
}
อย่างไรก็ตามหากโค้ดของคุณมีลักษณะตรงตามที่คุณระบุไว้คุณสามารถใช้while
ลูปปกติและเปลี่ยนเงื่อนไขเป็นobj != null
:
while (obj != null) {
....
}
while(obj != null){
// statements.
}
break
คือสิ่งที่คุณกำลังมองหา:
while (true) {
if (obj == null) break;
}
หรือปรับโครงสร้างลูปของคุณ:
while (obj != null) {
// do stuff
}
หรือ:
do {
// do stuff
} while (obj != null);
การค้นหาwhile...do
โครงสร้างwhile(true)
ในรหัสของฉันจะทำให้ตาของฉันเลือดออก ใช้while
ลูปมาตรฐานแทน:
while (obj != null){
...
}
และดูลิงค์ที่ Yacoby ให้ไว้ในคำตอบของเขาและลิงค์นี้ด้วย อย่างจริงจัง.
คุณสามารถทำการทดสอบตรรกะหลายเงื่อนไขได้ภายในการตรวจสอบ while () โดยใช้กฎเดียวกันกับภายในการตรวจสอบตรรกะใด ๆ
while ( obj != null ) {
// do stuff
}
ใช้งานได้เช่นเดียวกับ
while ( value > 5 && value < 10 ) {
// do stuff
}
ถูกต้อง เงื่อนไขจะถูกตรวจสอบในการวนซ้ำแต่ละครั้งผ่านลูป ทันทีที่ไม่ตรงกันลูป while () จะถูกออก คุณยังสามารถใช้ตัวแบ่ง
while ( value > 5 ) {
if ( value > 10 ) { break; }
...
}
คุณสามารถใช้ "break" ซึ่งได้กล่าวไว้แล้วในคำตอบข้างต้น หากคุณต้องการคืนค่าบางค่า คุณสามารถใช้ "return" เหมือนโค้ดด้านล่าง:
while(true){
if(some condition){
do something;
return;}
else{
do something;
return;}
}
ในกรณีนี้ขณะนี้อยู่ภายใต้วิธีการที่ส่งคืนค่าบางประเภท
ดูบทแนะนำ Java ™โดย Oracle
แต่โดยพื้นฐานแล้วดังที่dacwe กล่าวว่าให้ใช้break
.
ถ้าคุณทำได้มักจะชัดเจนกว่าที่จะหลีกเลี่ยงการใช้ break และวางเช็คเป็นเงื่อนไขของ while loop หรือใช้ do while loop สิ่งนี้ไม่สามารถทำได้เสมอไป
ถ้าคุณเขียนในขณะที่ (จริง) หมายความว่าลูปจะไม่หยุดในสถานการณ์ใด ๆ สำหรับการหยุดลูปนี้คุณต้องใช้คำสั่ง break ระหว่าง 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;
}
}
}
คุณสามารถใช้ "break" เพื่อทำลายลูปซึ่งจะไม่อนุญาตให้ลูปประมวลผลเงื่อนไขเพิ่มเติม
หากต้องการออกจากลูป while ให้ใช้Break;
สิ่งนี้จะไม่อนุญาตให้วนซ้ำเพื่อประมวลผลเงื่อนไขใด ๆ ที่วางอยู่ภายในตรวจสอบให้แน่ใจว่ามีสิ่งนี้อยู่ในลูปเนื่องจากคุณไม่สามารถวางไว้นอกลูปได้