ยินดีต้อนรับกลับ.
จนถึงตอนนี้ เราได้เรียนรู้ว่าด้วยการวนซ้ำ เราสามารถใช้สี่ได้
แต่จริงๆ แล้ว มีอีกวิธีหนึ่งที่เราจะวนซ้ำได้
และมันถูกเรียกแทน for loop a while loop
และในขณะที่การวนซ้ำนั้นแตกต่างกันเล็กน้อยในสิ่งที่เราพูดในขณะที่มีเงื่อนไขเกิดขึ้น
ทำอะไรสักอย่าง.
คุณจะเห็นว่ามีความแตกต่างเล็กน้อยที่นี่
ตัวอย่างเช่น ฉันสามารถพูดได้ว่าในขณะที่ศูนย์มีค่าน้อยกว่า 50 ให้ทำอะไรบางอย่างหรือฉันสามารถพูดได้เช่น
I เท่ากับศูนย์
และฉันจะบอกว่าในขณะที่ฉันยังไม่ถึง 50% ฉัน
ถ้าผมรันโปรแกรมนี้ คุณคิดว่าจะเกิดอะไรขึ้น?
ลองหา
ถ้าฉันคลิกเรียกใช้
ไม่เป็นไร.
คุณเห็นไหม
ฉันไม่รู้ว่าคุณจะบอกได้ไหม แต่ตอนนี้ฉันกำลังเลื่อนดูทั้งหมดนี้
มันวนลูป วนลูป วนลูป วนลูป วนลูป
และคุณเห็นว่าการเขียนโปรแกรมยังคงทำงานอยู่ตามความเป็นจริง
ฉันต้องหยุดมัน เพราะสิ่งที่มันทำคือมันวนซ้ำ วนลูป และวนลูป
เพราะถ้าเราดูโค้ด ศูนย์จะน้อยกว่า 50 เสมอ
สิ่งที่เกิดขึ้นคือในขณะที่สิ่งนี้เป็นความจริง เราพิมพ์มันออกมา
ฉันแล้วล่าม Python ก็กลับไปที่บรรทัดที่สองและพูดว่า เฮ้ ศูนย์ยังน้อยกว่า 50 อีกหรือ
ใช่.
ตกลง.
พิมพ์บรรทัดถัดไป
เฮ้ ศูนย์ยังน้อยกว่า 50 อีกเหรอ?
ใช่.
ตกลง.
บรรทัดถัดไป พิมพ์
และมันก็ดำเนินต่อไป
ไปต่อ ไปต่อ
นี่คือสิ่งที่เรียกว่าวนซ้ำอนันต์
นั่นคือโปรแกรมไม่รู้ว่าจะหยุดเมื่อไหร่
ฉันหมายความว่า เรากำลังบอกให้ทำต่อไปชั่วนิรันดร์
และฉันมีการป้องกันบางอย่างที่นี่
แต่ถ้าคุณทำสิ่งนี้ในโค้ด คุณจะได้ลูปไม่สิ้นสุดนี้จนกว่าโปรแกรมของคุณจะพัง
หากคุณรันโค้ดนี้จริงๆ มันจะทำงานต่อไปจนกว่าเครื่องจะไม่มีพลังงานเพียงพออีกต่อไป
ทรัพยากรเพียงพอที่จะทำสิ่งนี้ซ้ำแล้วซ้ำอีก
ทุกอย่างมีขีดจำกัด จริงไหม?
ดังนั้นในขณะที่วนรอบเราต้องระวังให้มาก
การวนซ้ำที่ไม่สิ้นสุดนี้อาจเป็นอันตรายได้
แล้วเราจะแก้ปัญหานี้ได้อย่างไร?
เรามีแนวคิดเกี่ยวกับคำสั่ง break และ break ก็เป็นเพียงแค่คีย์เวิร์ดอื่นใน Python
และอย่างที่คุณอาจเดาได้หากฉันคลิกเรียกใช้
ดูนั่นสิ
มันทำงานเพียงครั้งเดียว
ทันทีที่ Python เห็น break มันก็จะพูดว่า เอาล่ะ แยกตัวออกจาก wild loop
มันจะไปบรรทัดที่ 5 และจะบอกว่า ไม่มีอะไรเลย โปรแกรมต่างๆ เสร็จเรียบร้อยแล้ว
ฉันจะออกจากโปรแกรม
อืม.
แต่ถ้าฉันต้องการให้มันวนซ้ำ 50 ครั้งล่ะ
เราจะแก้ปัญหานั้นได้อย่างไร?
คิดเกี่ยวกับมัน
เราสามารถพูดง่ายๆ ได้ว่า ฉัน
เท่ากับผมบวกหนึ่ง
แล้วตรวจสอบให้แน่ใจว่าเราเปลี่ยนสิ่งนี้เป็น I
จะเกิดอะไรขึ้นถ้าฉันคลิกเรียกใช้
เราหยุด?
ที่ 49 เราทำไปแล้ว 50 ครั้ง
เราผ่านมันมาได้ 50 ครั้งเพราะเราค่อยๆ ลืมตาขึ้นซ้ำแล้วซ้ำเล่า ทุกครั้งที่เรากลับมาที่วง
จะเพิ่มขึ้นทีละครั้ง
ทีนี้ ตัวย่อสำหรับสิ่งนี้ที่เราเคยเห็นมาก่อนคือบวก เท่ากับหนึ่ง
เพื่อว่าถ้าผมวิ่ง
ดูที่สิ่งเดียวกัน
ดังนั้นเราจึงสามารถแยกออกจากลูปได้
ตราบใดที่เราเปลี่ยนเงื่อนไขให้เป็นเท็จได้
ดังนั้นคุณจะเห็นสิ่งนี้เป็นจำนวนมากเช่นกัน
ดังนั้นหากต้องการข้ามออกจากวนซ้ำ คุณสามารถเปลี่ยนเงื่อนไขเป็นเท็จหรือแยกออกจากลูปได้
ทีนี้ สิ่งที่น่าสนใจอีกอย่างที่เราสามารถทำได้ด้วย a while loop คือเราสามารถมีบล็อกอื่นได้
และที่นี่เราสามารถพูดได้ว่าพิมพ์
เสร็จไปทุกงาน
และถ้าฉันคลิกเรียกใช้ที่นี่
ในตอนท้ายสุด
ดูงานที่ทำเสร็จแล้ว
และนี่ควรอ่านเหมือนภาษาอังกฤษใช่ไหม
ในขณะที่ฉันอายุน้อยกว่า 50
วนลูปไปเรื่อยๆ ที่นี่
และทันทีที่เราไปถึงส่วนสุดท้ายที่ฉันกลายเป็น 50 โดยที่ 50 ไม่น้อยกว่า 50
ล่ามภาษาไพทอนกำลังจะพูดว่า เอาล่ะ ฉันไม่สนอะไรทั้งนั้น
ไปที่บรรทัดถัดไปและฉันได้รับอย่างอื่น
ดังนั้นในกรณีนี้ เราจึงไม่มีอะไรเกิดขึ้นอีก
เราสามารถพิมพ์งานได้หมด
แต่คุณคงกำลังถามตัวเองว่า อดทนไว้
ฉันไม่สามารถ
อย่าทำเช่นนี้และตรวจสอบให้แน่ใจว่าการเยื้องของฉันอยู่ที่ส่วนท้าย
คลิกเรียกใช้และ.
ที่ใช้งานได้ใช่มั้ย?
ทำไมฉันถึงอยากเขียน?
อื่น ๆ ที่นี่.
มีกรณีพิเศษอะไรอีกบ้างที่นี่?
มีสิ่งหนึ่งที่เป็นประโยชน์
นั่นคือถ้าเราเพิ่ม ตัวอย่างเช่น คำสั่งพักที่นี่
และฉันคลิกเรียกใช้
คุณจะเห็นว่าคำสั่งของเอลฟ์ไม่พิมพ์ออกมา
และนั่นเป็นเพราะว่าบล็อกอื่นจะทำงานก็ต่อเมื่อไม่มีการหยุดพัก
นั่นคือถ้าเงื่อนไขของผนังกลายเป็นเท็จ มันก็จะทำต่อไปและทำอย่างอื่น
แต่ถ้ามีการพัก มันจะแตกจากสิ่งทั้งหมดนี้และไปที่บรรทัดที่แปด
gotcha เล็กน้อยที่นี่ซึ่งคุณจะไม่เห็นบ่อยเกินไปข้างๆ
แต่มีกรณีพิเศษอื่นที่ใช้เมื่อคุณต้องการให้แน่ใจว่าจะดำเนินการนี้หรือไม่
เฉพาะในกรณีที่ไม่มีคำสั่ง break เฉพาะในกรณีที่ลูปเสร็จสิ้นการทำสิ่งใดก็ตามที่มันทำโดยไม่มีคำสั่ง
break
หยุดพักและสำรวจในขณะที่วนซ้ำอีกหน่อย