Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ในขณะที่วน Java

ในการเขียนโปรแกรม มักจะมีกรณีที่คุณมีงานซ้ำๆ ที่คุณต้องการดำเนินการหลายครั้ง ลูปถูกใช้เพื่อทำให้งานที่ซ้ำๆ เหล่านี้เป็นไปโดยอัตโนมัติ และช่วยให้คุณสร้างโค้ดที่มีประสิทธิภาพยิ่งขึ้นได้

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 จะถูกดำเนินการ เมื่อรันคำสั่ง break while . ของเรา คำสั่งจะหยุด



บทสรุป

while ลูปถูกใช้ใน Java รันบล็อกเฉพาะของโค้ดในขณะที่คำสั่งเป็นจริง และหยุดเมื่อคำสั่งเป็นเท็จ do...while ลูปรันบล็อกของโค้ดก่อน จากนั้นจึงประเมินคำสั่งเพื่อดูว่าลูปควรดำเนินต่อไปหรือไม่

บทช่วยสอนนี้กล่าวถึงวิธีใช้ทั้ง while และ do...while วนซ้ำใน Java เรายังได้พูดคุยเกี่ยวกับการวนซ้ำแบบไม่มีที่สิ้นสุดและดูตัวอย่างของแต่ละวิธีในโปรแกรม Java ตอนนี้คุณมีความรู้ที่จำเป็นในการเขียน Java while และ do...while วนลูปเหมือนผู้เชี่ยวชาญ!