ในการเขียนโปรแกรม มักจะมีกรณีที่คุณมีงานซ้ำๆ ที่คุณต้องการดำเนินการหลายครั้ง ลูปถูกใช้เพื่อทำให้งานที่ซ้ำๆ เหล่านี้เป็นไปโดยอัตโนมัติ และช่วยให้คุณสร้างโค้ดที่มีประสิทธิภาพยิ่งขึ้นได้
while
และ do...while
ลูปใน Java ใช้เพื่อรันบล็อกของโค้ดตราบเท่าที่ตรงตามเงื่อนไขเฉพาะ ลูปเหล่านี้คล้ายกับเงื่อนไข if
คำสั่ง ซึ่งเป็นกลุ่มของรหัสที่ดำเนินการก็ต่อเมื่อเงื่อนไขเฉพาะประเมินว่าเป็นจริงเท่านั้น ไม่เหมือนกับ if
อย่างไรก็ตาม while
ลูปทำงานจนกว่าเงื่อนไขจะไม่เป็นจริงอีกต่อไป
บทแนะนำนี้จะกล่าวถึงพื้นฐานของ while
และ do...while
คำสั่งในภาษา Java และจะอธิบายตัวอย่างบางส่วนเพื่อสาธิตคำสั่งเหล่านี้ในโปรแกรม Java
จาวาขณะวนรอบ
while
วนซ้ำผ่านบล็อกของรหัสตราบใดที่เงื่อนไขที่ระบุประเมินเป็นจริง ไวยากรณ์สำหรับ while
loop นั้นคล้ายกับ if
. แบบดั้งเดิม คำแถลง. นี่คือไวยากรณ์สำหรับ Java while
ห่วง:
ในขณะที่ (condition_is_met) { // รหัสที่จะดำเนินการ}
while
ลูปจะทดสอบนิพจน์ภายในวงเล็บ หากนิพจน์บูลีนประเมินเป็นจริง เนื้อหาของลูปจะดำเนินการ จากนั้นนิพจน์จะถูกประเมินอีกครั้ง โปรแกรมจะดำเนินการตามขั้นตอนนี้ต่อไปจนกว่านิพจน์จะประเมินเป็นเท็จ หลังจากนั้นให้ชี้ while
หยุดการวนซ้ำ และโปรแกรมที่เหลือจะทำงาน
มาดูตัวอย่างกันว่า while
. เป็นอย่างไร ลูปสามารถใช้ใน Java สมมติว่าเราเป็นช่างไม้และเราได้ตัดสินใจที่จะเริ่มขายโต๊ะใหม่ในร้านค้าของเรา เราสามารถสร้างโต๊ะได้เพียง 5 โต๊ะเท่านั้น หลังจากนั้นผู้ที่ต้องการโต๊ะจะถูกจัดอยู่ในรายชื่อผู้รอ
เราต้องการสร้างโปรแกรมที่บอกเราว่าสามารถสั่งโต๊ะได้กี่คน ก่อนที่เราจะจัดโต๊ะให้อยู่ในรายชื่อผู้รอ เราสามารถทำได้โดยใช้ while
วนแบบนี้ซึ่งจะรันเนื้อความของลูปจนกว่าจำนวนคำสั่งที่ทำไม่น้อยกว่าขีดจำกัด:
int limit =5;int orders_made =0;while (orders_made <จำกัด) { orders_made++; ความจุ int =จำกัด - orders_made; ข้อความสตริง =ความจุ + "สามารถสั่งซื้อตารางเพิ่มเติมได้"; System.out.println(ข้อความ);}
รหัสของเราส่งคืน:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
สั่งได้อีก 4 โต๊ะ สั่งเพิ่มได้ 3 โต๊ะ สั่งได้อีก 2 โต๊ะ สั่งเพิ่มได้ 1 โต๊ะ สั่งเพิ่มได้ 0 โต๊ะ
มาทำลายรหัสของเรากัน ในบรรทัดแรก เราประกาศตัวแปรชื่อ limit
ที่ติดตามจำนวนตารางสูงสุดที่เราสามารถทำได้ จากนั้นเราประกาศตัวแปรชื่อ orders_made
ที่จัดเก็บจำนวนการสั่งซื้อที่ทำ
โปรแกรมของเราจะรัน while
วนซ้ำซึ่งทำงานในขณะที่ orders_made
น้อยกว่า limit
. จากนั้น เราใช้ orders_made++
ตัวดำเนินการเพิ่มเพื่อเพิ่ม 1 ใน orders_made
.
หลังจากที่ตัวดำเนินการเพิ่มดำเนินการแล้ว โปรแกรมของเราจะคำนวณความจุที่เหลืออยู่ของตารางโดยลบ “orders_made
จาก limit
. จากนั้นจะพิมพ์ข้อความว่า [capacity] more tables can be ordered.
ไปที่คอนโซล
คำสั่ง "while" ของเราหยุดทำงานเมื่อ orders_made
มีขนาดใหญ่กว่า limit
.
Java ทำในขณะที่วนซ้ำ
do…while
loop เป็นประเภท while
ห่วง do...while
ลูปรันบล็อกของโค้ดใน do
บล็อกหนึ่งครั้งก่อนที่จะตรวจสอบว่าเงื่อนไขประเมินว่าเป็นจริงหรือไม่ จากนั้นโปรแกรมจะวนซ้ำจนกว่าเงื่อนไขจะเป็นจริง
ความแตกต่างระหว่าง while
และ do...while
ลูปคือ while
ลูปประเมินเงื่อนไข ก่อน รันโค้ดใน while
บล็อกในขณะที่ทำ…ในขณะที่ลูปประเมินเงื่อนไข หลัง รันโค้ดใน do
บล็อก.
ไวยากรณ์สำหรับ do…while loop มีดังนี้:
do { // Code to execute} while (condition_is_met);
ลองใช้ตัวอย่างเพื่ออธิบายว่า do…while ทำงานอย่างไร
สมมติว่าเรากำลังสร้างเกมเดาที่ขอให้ผู้ใช้เดาตัวเลขระหว่างหนึ่งถึงสิบ เราต้องการให้ผู้ใช้ของเราถูกขอให้ป้อนหมายเลขก่อนตรวจสอบว่าพวกเขาเดาหมายเลขที่ถูกต้องหรือไม่ หากผู้ใช้ป้อนหมายเลขผิดควรได้รับการเลื่อนตำแหน่งให้ลองอีกครั้ง เราสามารถทำงานนี้ให้สำเร็จได้โดยใช้ do…while loop
ต่อไปนี้คือตัวอย่างโปรแกรมที่ขอให้ผู้ใช้เดาตัวเลข แล้วประเมินว่าผู้ใช้เดาหมายเลขที่ถูกต้องโดยใช้ do…while loop หรือไม่:
นำเข้า java.util.Scanner;class GuessingGame { public static void main(String[] args) {int number =8;int Guess =0;Scanner input =new Scanner(System.in);do {System.out .print("ป้อนตัวเลขระหว่าง 1 ถึง 10:");guess =input.nextInt();} while (number !=Guess);System.out.println("คุณพูดถูก!"); }}
เมื่อเรารันโค้ด เราจะถูกขอให้เดาตัวเลข ก่อน ก่อนเงื่อนไขใน do...while
. ของเรา วนรอบได้รับการประเมิน นี่คือสิ่งที่จะเกิดขึ้นเมื่อเราพยายามเดาตัวเลขสองสามตัวก่อนที่จะคาดเดาตัวเลขที่ถูกต้องในที่สุด:
ป้อนตัวเลขระหว่าง 1 ถึง 10:9ป้อนตัวเลขระหว่าง 1 ถึง 10:1ป้อนตัวเลขระหว่าง 1 ถึง 10:4ป้อนตัวเลขระหว่าง 1 ถึง 10:5ป้อนตัวเลขระหว่าง 1 ถึง 10:8 คุณพูดถูก!ก่อน>มาทำลายรหัสของเรากัน ขั้นแรก เรานำเข้า
util.Scanner
วิธีการซึ่งใช้ในการรวบรวมอินพุตของผู้ใช้ จากนั้นเรากำหนดคลาสที่เรียกว่าGuessingGame
ที่มีรหัสของเราอยู่
จากนั้นเราจะกำหนดตัวแปรสองตัว:ตัวหนึ่งเรียกว่า
number
ซึ่งเก็บตัวเลขเอาไว้เดา และอีกอันเรียกว่าguess
ซึ่งเก็บการเดาของผู้ใช้
จากนั้น เราใช้วิธีสแกนเนอร์เพื่อเริ่มต้นการป้อนข้อมูลผู้ใช้ของเรา เราพิมพ์ข้อความ
Enter a number between 1 and 10:
ไปที่คอนโซล จากนั้นใช้input.nextInt()
วิธีการดึงหมายเลขที่ผู้ใช้ป้อน
หลังจากที่โค้ดนี้ทำงานแล้ว do…while loop จะประเมินว่าจำนวนที่ผู้ใช้เดานั้นเท่ากับจำนวนที่ผู้ใช้ต้องเดาหรือไม่ หากผู้ใช้เดาเลขผิด เนื้อหาของ
do
วนซ้ำอีกครั้ง; หากผู้ใช้เดาหมายเลขที่ถูกต้อง do…while loop หยุดทำงานและข้อความYou’re correct!
ถูกพิมพ์ไปที่คอนโซล
วนซ้ำไม่สิ้นสุด
วนซ้ำไม่มีที่สิ้นสุดเป็นลูปที่จะทำงานต่อไปตลอดไป หากคุณมี
while
วนซ้ำซึ่งคำสั่งไม่เคยประเมินว่าเป็นเท็จ ลูปจะดำเนินต่อไปและอาจทำให้โปรแกรมของคุณขัดข้อง ดังนั้น สิ่งสำคัญคือต้องแน่ใจว่าในขณะที่ลูปของคุณหยุดทำงานในบางจุด
นี่คือตัวอย่างของการวนซ้ำแบบไม่มีที่สิ้นสุดใน Java:
ในขณะที่ (จริง) { // รหัสที่จะดำเนินการ}วนรอบนี้จะทำงานไม่สิ้นสุด อย่างไรก็ตาม เราสามารถหยุดโปรแกรมของเราได้โดยใช้
break
คำแถลง. สมมติว่าเรากำลังสร้างโปรแกรมที่ติดตามจำนวนโต๊ะในสต็อก เรามีโต๊ะเพียงห้าโต๊ะในสต็อก เมื่อไม่มีโต๊ะในสต็อก เราต้องการwhile
วนที่จะหยุด เราสามารถสร้างโปรแกรมที่ตรงตามข้อกำหนดเหล่านี้โดยใช้รหัสต่อไปนี้:
Boolean tables_in_stock =true;int orders_made =0;while (tables_in_stock) { orders_made++; if (orders_made ==5) { System.out.println("สินค้าหมดสต๊อก"); หยุดพัก; } อื่น ๆ { int tables_left =5 - orders_made; ข้อความสตริง ="มี " + table_left + " ตารางอยู่ในสต็อก"; System.out.println (ข้อความ); }}เมื่อเรารันโค้ดของเรา การตอบสนองต่อไปนี้จะถูกส่งกลับ:
มีโต๊ะ 4 ตัวในสต็อก มีโต๊ะ 3 ตัวในสต็อก มีโต๊ะในสต็อก 2 ตัว มีโต๊ะในสต็อก 1 ตัวสินค้าหมดในตัวอย่างของเรา
while
loop จะดำเนินการต่อไปตราบเท่าที่tables_in_stock
เป็นความจริง. แต่เราไม่เคยระบุวิธีที่tables_in_stock
สามารถกลายเป็นเท็จ
ดังนั้น ในโค้ดของเรา เราใช้
break
คำสั่งที่ดำเนินการเมื่อorders_made
เท่ากับ 5
ซึ่งหมายความว่าเมื่อมีคำสั่งซื้อน้อยกว่าห้ารายการ จะมีการพิมพ์ข้อความว่า
There are [tables_left] tables in stock.
แต่เมื่อorders_made
เท่ากับ 5 มีข้อความระบุว่าWe are out of stock.
จะถูกพิมพ์ไปที่คอนโซล และคำสั่ง break จะถูกดำเนินการ เมื่อรันคำสั่ง breakwhile
. ของเรา คำสั่งจะหยุด
บทสรุป
while
ลูปถูกใช้ใน Java รันบล็อกเฉพาะของโค้ดในขณะที่คำสั่งเป็นจริง และหยุดเมื่อคำสั่งเป็นเท็จdo...while
ลูปรันบล็อกของโค้ดก่อน จากนั้นจึงประเมินคำสั่งเพื่อดูว่าลูปควรดำเนินต่อไปหรือไม่
บทช่วยสอนนี้กล่าวถึงวิธีใช้ทั้ง
while
และdo...while
วนซ้ำใน Java เรายังได้พูดคุยเกี่ยวกับการวนซ้ำแบบไม่มีที่สิ้นสุดและดูตัวอย่างของแต่ละวิธีในโปรแกรม Java ตอนนี้คุณมีความรู้ที่จำเป็นในการเขียน Javawhile
และdo...while
วนลูปเหมือนผู้เชี่ยวชาญ!