ค่อยจะเห็นด้วยกับการใช้การประมวลผลในลักษณะนี้เท่าใดนัก เรามาดูตัวอย่างกัน
/* LabledContinue.java */ import java.io.*; class LabeledContinue { public static void main(String[] args) { label: for(int row = 1; row <= 10; row++) { System.out.println(); for(int column = 1; column <= 10; column++) { if(column > row) continue label; //goto label System.out.print("*"); } } } }
เราได้ดัดแปลงโปรแกรม Continue.java ของเราสำหรับการแสดงการใช้ labeled continue ในโปรแกรม LabeledContinue.java เรากำหนดให้มี identifier ที่มีชื่อว่า label อยู่ก่อนหน้า for loop ด้านนอกของเรา ซึ่งต้องมีเครื่องหมาย ':' ตามหลังเสมอ และในการใช้ continue ใน for loop ด้านในนั้นเราจะต้องมี identifier ที่เราใช้ตามหลัง continue เสมอ การประมวลด้วย labeled continue ก็ไม่ยากนักที่จะทำความเข้าใจ เมื่อค่าของ column มากกว่าค่าของ row การทำงานใน for loop ด้านในก็สิ้นสุดลงและไปเริ่มต้นใหม่ที่ for loop ด้านนอก เพราะนั่นเป็นที่ที่มี label อยู่ การทำงานแบบนี้ก็เหมือนกับการกระโดดไปยังตำแหน่งที่เราต้องการจะไปนั่นเอง ทั้งนี้ก็ต้องขึ้นอยู่กับเงื่อนไขที่เราได้ตั้งไว้
No comments:
Post a Comment