การใช้ประโยคสั่งทำงานวนซ้ำ

ฟังก์ชัน range()

ฟังก์ชัน range() คือ ระยะตั้งแต่เริ่มต้นถึงก่อนระยะสิ้นสุด มักจะใช้ในการควบคุมการทำงานของโปรแกรมเป็นจำนวนรอบ มีวิธีการเขียนดังนี้ range(start, stop[, step]) โดย start เป็นค่าเริ่มต้น stop เป็นตำแหน่งค่าระยะสิ้นสุด และ step คือระยะห่างการเพิ่มดังตัวอย่างต่อไปนี้

ตัวอย่างการใช้ range
for i in range(5):
   print(i, end=' ')
>>> 0 1 2 3 4

for i in range(1,5):
   print(i, end=' ')
>>> 1 2 3 4

for i in range(1,5,2):
   print(i, end=' ')
>>> 1 3

for i in range(5,1,-2):
   print(i, end=' ')
>>> 5 3

คำสั่ง for

คำสั่ง for statement เป็นการทำงานซ้ำๆ ตามจำนวนครั้งที่ระบุไว้อย่างแน่นอน เช่น การใช้ for statement ร่วมกันกับ range() โดยมีรูปแบบการเขียนดังนี้

รูปแบบการเขียน for statement
for var in sequence:
   statement
   statement
   statement
   statement
   ...

ตัวอย่างการใช้ for statement เป็นดังนี้

ตัวอย่างการใช้ for statement
for x in range(0,5):
   print(x, end=' ')

ซึ่งจะได้ผลลัพธ์ดังนี้

ผลลัพธ์จากตัวอย่างการใช้ for statement
0 1 2 3 4

ตัวอย่างการใช้ for statement จะได้ผลลัพธ์ดังนี้

ตัวอย่างการใช้ for statement
name = 'Jan'
for char in name:
   print(char, end=' ')
>>> J a n

mylist = ['Jan', 200, 4.5]
for item in mylist:
   print(item, end = ' ')
>>> Jan 200 4.5

ตัวอย่างการใช้ for statement ที่มีการผสมของการใช้ if ในการกำหนดเงื่อนไขการตัดสินใจ เป็นดังนี้

ตัวอย่างการใช้ for statement
message = input('Enter a message: ')
vowels = 'AEIOU'
counter = 0
for char in message:
   if char.upper() in vowels:
      counter += 1
      print('Vowels: ', counter)

ซึ่งจะได้ผลลัพธ์ดังนี้

ผลลัพธ์จากตัวอย่างการใช้ for statement
Enter a message: Jantawan
Vowels: 3

คำสั่ง while

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

while statement มีลักษณะการเขียน 3 รูปแบบ คือ แบบ Pre-Test แบบ Post-Test และแบบ Mid-Test

รูปแบบการเขียน while statement แบบ Pre-Test เป็นดังนี้คือ

รูปแบบการเขียน while statement
while expression:
   statement
   statement
   statement
   statement
   ...

และมีตัวอย่างการใช้ while statement เป็นดังนี้

ตัวอย่างการใช้ while statement
x = 0
while x < 10:
   print(x, end=' ')
   x = x + 1

ซึ่งได้ผลลัพธ์เช่นนี้

ผลลัพธ์จากตัวอย่างการใช้ while statement
0 1 2 3 4 5 6 7 8 9

รูปแบบการเขียน while statement แบบ Post-Test เป็นดังนี้คือ

รูปแบบการเขียน while statement
while True:
   statement
   statement
   statement
   statement
   ...
   if expression:
      break

และมีตัวอย่างการใช้ while statement เป็นดังนี้

รูปแบบการเขียน while statement
i = 10
while True:
   print(i, end=' ')
   -= 2
   if i <= 0: break

ซึ่งได้ผลลัพธ์เช่นนี้

ผลลัพธ์จากตัวอย่างการใช้ break
10 8 6 4 2 0

รูปแบบการเขียน while statement แบบ Mid-Test เป็นดังนี้คือ

รูปแบบการเขียน while statement
while True:
   statement
   statement
   statement
   statement
   ...
   if expression:
      break
   statement
   statement
   statement
   statement
   ...

และมีตัวอย่างการใช้ while statement เป็นดังนี้

Mid-test
x = 0
while True:
   print(x, end=' ')
   if x == 10:
      break
   x = x +1

ซึ่งได้ผลลัพธ์เช่นนี้

ผลลัพธ์จากตัวอย่างการใช้ break
0 1 2 3 4 5 6 7 8 9 10

แบบฝึกหัด

  1. สร้างฟังก์ชันหาค่าของ \(3^1\) + \(3^2\) + \(3^3\) + \(3^4\) + \(3^5\) โดยใช้ For loop

  2. สร้างฟังก์ชันให้ผู้ใช้ป้อนค่า x แล้วนำค่า x มาคำนวณ \(x^1\) + \(x^2\) + \(x^3\) + \(x^4\) + \(x^5\)

  3. สร้างฟังก์ชันให้ผู้ใช้ป้อนค่า n และให้แสดงเลขเริ่มที่ n โดยลดลงทีละหนึ่ง โดยใช้ while loop

  4. สร้างฟังก์ชันให้ผู้ใช้ป้อนตัวเลข แล้วหาว่ามีเลขใดที่สามารถหารเลขที่ผู้ใช้ป้อนได้ลงตัว เช่น ผู้ใช้ป้อนตัวเลข 4 จะมี 1 2 4 ที่หารเลข 4 ลงตัว

  5. สร้างฟังก์ชันคำนวณปีเกิด คศ. เป็น 12 ราศีปีนักษัตร

  6. สร้างฟังก์ชันรับจำนวนเงินมาหนึ่งค่า แล้วแลกเปลี่ยนธนบัตร 100 บาท 50 บาท 20 บาท เหรียญ 10 บาท 5 บาท และ 1 บาท