คำสั่ง break ใน Java ใช้เพื่อหยุดการทำงานของลูป (loop) ทันที เมื่อโปรแกรมพบคำสั่ง break จะข้ามการทำงานของลูปที่อยู่ในขณะนั้นและไปทำงานคำสั่งถัดไปหลังลูปนั้นทันที หากใช้ break ภายใน nested loop (ลูปซ้อน) จะมีผลเฉพาะลูปชั้นในสุดเท่านั้น
คำสั่ง break ใน Java
คำสั่ง break ใช้ควบคุมโฟลว์ของโปรแกรมเมื่อต้องการออกจากลูปก่อนเวลาตามเงื่อนไขที่กำหนด รูปแบบการเขียนคือ:
break;
break เป็นคีย์เวิร์ดที่ทำงานได้ด้วยตัวเอง ไม่รับอาร์กิวเมนต์ เนื่องจากไม่ใช่ฟังก์ชัน เมื่อโปรแกรมพบ break จะข้ามการทำงานรอบปัจจุบันของลูปและออกจากลูปทันที
ตัวอย่างการใช้งาน break
สมมติเราเขียนโปรแกรมให้ผู้ใช้ทายตัวเลข 1-10 มีโอกาสทายได้ 5 ครั้ง หากทายถูกจะแสดงข้อความยินดีและหยุดโปรแกรมทันที
import java.util.Scanner;
class GuessingGame {
public static void main(String[] args) {
int number = 6;
Scanner input = new Scanner(System.in);
for (int i = 0; i <= 5; i++) {
System.out.print("Guess a number between 1 and 10: ");
int guess = input.nextInt();
if (guess == number) {
System.out.println("You're correct!");
break; // ออกจากลูปทันทีเมื่อทายถูก
}
}
}
}
ผลลัพธ์:
Guess a number between 1 and 10: 1 Guess a number between 1 and 10: 6 You're correct!
อธิบายโค้ด
- นำเข้า
java.util.Scannerเพื่อรับค่าจากผู้ใช้ - สร้างคลาส
GuessingGame - กำหนดตัวแปร
number = 6เป็นคำตอบ - ลูป
forวน 5 รอบ (i = 0 ถึง 5) - รับค่าจากผู้ใช้เก็บใน
guess - ตรวจสอบว่า
guess == numberหรือไม่ - หากตรงกัน แสดงข้อความและ
breakออกจากลูป - หากไม่ตรง ลูปจะทำงานต่อจนครบ 5 รอบ
คำสั่ง break ใน Nested Loop
ใน nested loop คำสั่ง break จะมีผลเฉพาะลูปชั้นในที่อยู่เท่านั้น ตัวอย่าง:
for (int i = 0; i < 3; i++) {
while (true) {
if (condition) {
break; // ออกจาก while loop เท่านั้น
}
}
// for loop ยังทำงานต่อ
}
Labelled break Statement
ใช้เมื่อต้องการออกจากลูปชั้นนอก (outer loop) โดยระบุ label:
outerLoop:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (condition) {
break outerLoop; // ออกจาก all loops จนถึง outerLoop
}
}
}
เมื่อ break outerLoop ทำงาน โปรแกรมจะออกจากลูปทั้งสองชั้นและทำงานคำสั่งถัดไปหลัง outerLoop
สรุป
คำสั่ง break ใช้หยุดลูปทันที ในขณะที่ labelled break ใช้ควบคุมการออกจากลูปชั้นนอกได้ ทั้งสองคำสั่งช่วยควบคุมโฟลว์ของโปรแกรมให้มีประสิทธิภาพมากขึ้น