ดีครับดอทคอม

เขียนโปรแกรมภาษา Python ตอนที่ 138 การใช้ while loop

เขียนโปรแกรมภาษา Python ตอนที่ 138 การใช้ while loop

เขียนโปรแกรมภาษา Python ตอนที่ 138 การใช้ while loop

ใน Python เราสามารถใช้ while loop เพื่อวนรอบทำงานบางอย่างไปเรื่อย ๆ จนกว่าจะเป็นไปตามเงื่อนไขที่กำหนด

การใช้ while loop เราต้องสร้างตัวแปรมาไว้เป็นเงื่อนไขเพื่อกำหนดว่าจะจบการวนลูปเมื่อไหร่ ดังตัวอย่าง

count = 1
while count < 10:
    print(count)
    count += 1 #ต้องเพิ่มค่าตัวนับขึ้นทุกรอบ ไม่เช่นนั้นลูปจะทำงานไม่รู้จบ
  • บรรทัดที่ 1 สร้างตัวแปร count ขึ้นมา กำหนดค่าเป็น 1 สำหรับเอาไว้เป็นตัวนับรอบ
  • บรรทัดที่ 2 ใช้ while loop วนรบทำงานโดยมีเงื่อนไขว่า ตราบใดที่ตัวแปร count ยังมีค่าน้อยกว่า 10 อยู่ ให้วนรอบทำงานไปเรื่อย ๆ
  • บรรทัดที่ 3 สั่งให้แสดงค่าของตัวแปร count ออกทางหน้าจอ
  • บรรทัดที่ 4 เพิ่มค่าของตัวแปร count ขึ้นทีละ 1 ในทุก ๆ รอบที่ทำงาน (ถ้าไม่เพิ่มค่าตัวนับขึ้นเรื่อย ๆ ลูปจะทำงานไม่รู้จบ เพราะไม่รู้ว่าจะต้องหยุดเมื่อไหร่)

ผลลัพธ์ จะได้เลข 1 – 9 เพราะลูปทำงาน 9 รอบ รอบที่ 1-9 ตัวแปร count ยังมีค่าน้อยกว่า 10 อยู่ ลูปจึงทำงานทุกรอบ หลังจากนั้น ตัวแปร count มีค่าเท่ากับ 10 ไม่ตรงตามเงื่อนไข ลูปจึงไม่ทำงาน

1
2
3
4
5
6
7
8
9

ออกจากลูปด้วย break statement

ถ้าต้องการให้ออกจากลูปด้วยเงื่อนไขบางอย่าง เราสามารถใช้ break statement ร่วมกับคีย์เวิร์ด if เพื่ออกจากลูปกลางคันได้

count = 1
while count < 10:
    print(count)
    if count == 5:
        break
    count += 1
  • บรรทัดที่ 1 สร้างตัวแปร count ขึ้นมา กำหนดค่าเป็น 1 สำหรับเอาไว้เป็นตัวนับรอบ
  • บรรทัดที่ 2 ใช้ while loop วนรบทำงานโดยมีเงื่อนไขว่า ตราบใดที่ตัวแปร count ยังมีค่าน้อยกว่า 10 อยู่ ให้วนรอบทำงานไปเรื่อย ๆ
  • บรรทัดที่ 3 สั่งให้แสดงค่าของตัวแปร count ออกทางหน้าจอ
  • บรรทัดที่ 4-5 ในทุก ๆ รอบ ให้ตรวจสอบว่าตัวแปร count มีค่าเท่ากับ 5 หรือยัง ถ้าตัวแปร count มีค่าเท่ากับ 5 แล้ว สั่งให้ออกจากลูปด้วยคำสั่ง break โดยไม่สนใจว่าลูปทำงานครบทุกรอบแล้วหรือยัง
  • บรรทัดที่ 6 เพิ่มค่าของตัวแปร count ขึ้นทีละ 1 ในทุก ๆ รอบที่ทำงาน

    ผลลัพธ์ จะได้ตัวเลข 1-5 เพราะมีคำสั่งให้ออกจากลูปเมื่อทำงานครบ 5 รอบ

    1
    2
    3
    4
    5

    ข้ามรอบปัจจุบันไปทำงานในรอบถัดไปด้วย continue statement

    เราสามารถสั่งให้ข้ามการทำงานในรอบใด ๆ แล้วข้ามไปทำงานในรอบถัดไปได้เลย โดยใช้ continue statement

    count = 0
    while count < 10:
        count += 1
        if count == 5:
            continue
        print(count)
    • บรรทัดที่ 1 สร้างตัวแปร count ขึ้นมา กำหนดค่าเป็น 0 สำหรับเอาไว้เป็นตัวนับรอบ
    • บรรทัดที่ 2 ใช้ while loop วนรบทำงานโดยมีเงื่อนไขว่า ตราบใดที่ตัวแปร count ยังมีค่าน้อยกว่า 10 อยู่ ให้วนรอบทำงานไปเรื่อย ๆ
    • บรรทัดที่ 3 เพิ่มค่าของตัวแปร count ขึ้นทีละ 1 ในทุก ๆ รอบที่ทำงาน
    • บรรทัดที่ 4 ตรวจสอบว่าตัวแปร count มีค่าเท่ากับ 5 หรือไม่
    • บรรทัดที่ 5 ถ้าเงื่อนไขเป็นไปตามที่ตรวจสอบในบรรทัดที่ 4 ให้ข้ามการทำงานในรอบนี้ไปรอบต่อไปเลย
    • บรรทัดที่ 6 สั่งให้แสดงค่าของตัวแปร count ออกทางหน้าจอ

    ผลลัพธ์ จะได้ตัวเลข 1-10 แต่ไม่มีเลข 5 เพราะรอบที่ตัวแปร count มีค่าเท่ากับ 5 ถูกข้ามไป

    1
    2
    3
    4
    6
    7
    8
    9
    10

    การใช้ else statement ร่วมกับ while loop

    เราสามารถสั่งให้มีการทำงานอย่างใดอย่างหนึ่งหลังจาก while loop หยุดทำงานตามเงื่อนไขที่กำหนดแล้ว โดยการใช้ else statement ดังตัวอย่าง

    count = 1
    while count < 10:
        print(count)
        count += 1
    else:
        print("ตอนนี้ loop หยุดทำงานแล้ว")
    • บรรทัดที่ 5-6 เมื่อ while loop หยุดทำงานตามเงื่อนไข จะมาทำงานที่คำสั่งนี้ต่อ

    ผลลัพธ์

    1
    2
    3
    4
    5
    6
    7
    8
    9
    ตอนนี้ loop หยุดทำงานแล้ว