Control Flow : Loop (Part 1)

บทนี้เราจะมาศึกษาเกี่ยวกับเรื่อง Loop ใน Swift ครับ

Loop คือชุดคำสั่งในการวนหาข้อมูลที่ต้องการ หรือวนทำงานซ้ำๆไปตามจำนวนรอบที่กำหนดไว้

เช่น ถ้าเราต้องการแสดงข้อความตามจำนวน x รอบ ออกทางหน้าจอ

หรือถ้าเราต้องการค้นหารายชื่อพนักงานจนครบตามจำนวน x คน

ใน Swift มีคำสั่งสำหรับทำ Loop ได้หลายแบบ ตอนนี้เรามาดู Loop แบบแรกกันก่อน

For Loop

For Loop จะมีสองแบบ คือ For และ For in

มาดูการใช้  For กันก่อน : for (Start,End,Step) {    }

– Start ตั้งค่าตัวแปรเป็นจุดเริ่มของการ Loop

– End ตั้งค่าสุดท้ายสำหรับการจบ Loop

– Step การเพิ่ม/ลดค่าต่อจำนวนรอบจะเป็น + หรือ – ก็ได้

เปิด Xcode มาลองมาเขียนโปรแกรมตามตัวอย่างกันครับ

ThaiSwiftClass Control Flow For Loop 1
ThaiSwiftClass Control Flow For Loop 1

จากตัวอย่าง: ต้องการพิมพ์ข้อความตามจำนวนรบที่กำหนดไว้  เราได้ประกาศตัวแปร 2 ตัว

– ตัวแปร iLoop เป็น Int ไว้พิมพ์ค่าของรอบที่วิ่ง

– ตัวแปร iFor เป็น Int ไว้ทำเป็นตัวแปรสำหรับทำรอบ

* จริงๆใช้ตัวแปร iFor อย่างเดียวก็ได้ แต่ต้องการให้เห็นการทำงานชัดเจนยิ่งขึ้น

ในส่วนของ for (iFor=0;iFor<10;iFor++)

Start : iFor = 0 จุดเริ่มต้นของรอบให้ตั้งไว้ที่ 0

End  : iFor < 10 ให้จุดสิ้นสุดของรอบที่ iFor น้อยกว่าสิบ

Step : iFor++ ให้เพิ่ม Step ของรอบที่ละ 1

สรุปคือโปรแกรมนี้ เราจะวิ่งกัน 10 รอบ คือ 0-9 โดยแต่ละรอบจะกำหนดให้ค่า iLoop เพิ่มขึ้นที่ละ 1 (iLoop++)

มาดูผลที่ได้กัน

ThaiSwiftClass Control Flow For Loop 1 Result

ThaiSwiftClass Control Flow For Loop 1 Result

ตัวอย่างที่ 2 : ใช้ Switch เข้ามาเพิ่มลูกเล่น
ThaiSwiftClass Control Flow For Loop 2

ThaiSwiftClass Control Flow For Loop 2

จากโปรแกรมที่ 2 เราจะวน 5 รอบ (0-4) แล้วใช้ Switch ในการตรวจสอบจำนวนรอบแล้วพิมพ์ข้อความตามเงื่อนไขรอบที่เข้ามา

ThaiSwiftClass Control Flow For Loop 2 Result

ThaiSwiftClass Control Flow For Loop 2 Result

ตัวอย่างที่ 3 : ลองเขียนโปรแกรมนับถอยหลังบ้าง
ThaiSwiftClass Control Flow For Loop 3

ThaiSwiftClass Control Flow For Loop 3

จากตัวอย่างที่ 3 : เราจะลองเขียนโปรแกรมนับถอยหลังตั้งแต่ 5 4 3 2 1 0..

for(iFor=5;iFor>=0;iFor–)

Start : ให้ iFor มีค่าเริ่มแรกเป็น 5

End  : ให้จบที่ 0

Step : ไปทีละ -1

จากนั้นใช้ Switch และ if ตรวจสอบเงื่อนไข และพิมพ์ออกหน้าจอ

ThaiSwiftClass Control Flow For Loop 3 Result

ThaiSwiftClass Control Flow For Loop 3 Result

 

For แบบที่ 2 คือ For in
For In 

For in จะตรวจสอบสอบการวนรอบในช่วงที่กำหนดไว้  ลองดูจากโค๊ดตัวอย่าง

ThaiSwiftClass Control Flow For Loop in 1

ThaiSwiftClass Control Flow For Loop in 1

จากตัวอย่างเราจะลองสร้างโปรแกรมสูตรคูณแม่ 5 ขึ้นมา ให้วนตั้งแต่ 1-5 โดยในแต่ละรอบให้คำนวนแม่ 5 (iMultiply = 5) x ตามจำนวนรอบตั้งแต่ 1 จนถึง 5  ดูผลการทำงานกันครับ

ThaiSwiftClass Control Flow For Loop in 1 Result

ThaiSwiftClass Control Flow For Loop in 1 Result

 

ตัวอย่างที่ 2 ของ For in ลองเขียนโปรแกรมเลขยกกำลัง

ThaiSwiftClass Control Flow For Loop in 2

ThaiSwiftClass Control Flow For Loop in 2

จากตัวอย่างเราจะเขียนโปรแกรมเลขยกกำลังของ 2 ตั้งแต่ยกกำลัง 1 ถึง 5

– iResult *= iBase แทนการเขียนด้วย iResult = iResult * iBase

รอบแรก 1×2 = 2 , รอบสอง 2×2 = 4 , รอบสาม 4×2 = 8, รอบที่สี่  8×2 = 16, รอบที่ 5 16×2 = 32

ThaiSwiftClass Control Flow For Loop in 2 Result

ThaiSwiftClass Control Flow For Loop in 2 Result

 

ตัวอย่างแบบที่ 3 : เราสามารถวนลูปเข้าไปในข้อความ (String) ได้

ThaiSwiftClass Control Flow For Loop in 3

ThaiSwiftClass Control Flow For Loop in 3

เราประกาศตัวแปร sExample เป็น String เก็บค่า “Swift is Fun” ไว้ แล้วให้ sChar วิ่งวนเข้าไปในแต่ละตัวอักษรของที่อยู่ในตัวแปร sExample โดยใช้คำสั่ง for sCar in sExample

ลองมาดูผลที่ได้

ThaiSwiftClass Control Flow For Loop in 3 Result

ThaiSwiftClass Control Flow For Loop in 3 Result

สำหรับเรื่อง Loop ยังมีคำสั่งนอกจาก For อีกนะครับใน Part 2

ยังไงให้ลองฝึกให้คล่องนะครับ เพราะโปรแกรมแทบจะทั้งหมดใช้หลักการที่เรียนมาครับ

แนะนำติชมได้ที่ thaiswiftclass@gmail.com
และทาง https://www.facebook.com/thaiswiftclass
ครับ 🙂