Control Flow : Condition & Comparison : การตรวจสอบเงื่อนไขของโปรแกรมและเครื่องหมายเปรียบเทียบค่า

Condition & Comparision : การตรวจสอบเงื่อนไขของโปรแกรม บทนี้จะได้เรียนรู้การใช้เครื่องหมายเปรียบเทียบและการตรวจสอบเงื่อนไของโปรแกรม มาดูเรื่องเครื่องหมายสำหรับเปรียบเทียบกันก่อนครับ เครื่องหมายเปรียบเทียบที่ใช้ใน Swift มีดังนี้

เครื่องหมาย
ความหมาย
== เท่ากับ
!= ไม่เท่ากับ
> มากกว่า
>= มากกว่าหรือเท่ากับ
< น้อยกว่า
<= น้อยกว่าหรือเท่ากับ

เราลองมาเขียนโปรแกรมสั้นๆเพื่อตรวจสอบเครื่องหมายเปรียบเทียบ โดยเราจะใช้ตัวแปรชนิด Boolean (ถูก/ผิด) โดย ค่า Boolean ใน Swift จะใช้ true , false มารับผลของการเปรียบเทียบกัน ให้เปิด Xcode ขึ้นมาแล้วลองเขียนโปรแกรม Swift ตามนี้

ThaiSwiftClass Condition Part 1
ThaiSwiftClass Condition Part 1

ลองกด Command + R เพื่อสั่ง Run

ThaiSwiftClass Condition Part 1 Result
ThaiSwiftClass Condition Part 1 Result

หลังจากเรียนรู้เครื่องหมายเปรียบเทียบแล้ว มาลองดูวิธีตรวจสอบเงื่อนไขกันต่อ   การตรวจสอบเงื่อนไข : Swift จะใช้คำสั่งตรวจสอบเงื่อนไขอยู่ 2 แบบ แบบแรก  if  (  ตรวจสอบว่าจริง/เท็จ  )  {  ดำเนินการตามเงื่อนไข } หรือ  if    (  ตรวจสอบว่าจริง/เท็จ  )  {  ดำเนินการตามเงื่อนไข } else  {  ดำเนินการต่อถ้าเงื่อนไขแรกไม่ใช่ } หรือ   if    (  ตรวจสอบว่าจริง/เท็จ  )  {  ดำเนินการตามเงื่อนไข } else   if  ( เงื่อนไขที่ต่อไป )  { ดำเนินการตามเงื่อนไข } ลองเขียนโปรแกรมดูตัวอย่างการใช้  if… else …

ThaiSwiftClass Condition Part 2 if else
ThaiSwiftClass Condition Part 2 if else

ดูผลของโปรแกรมนะครับ

ThaiSwiftClass Condition Part 2 Result if else
ThaiSwiftClass Condition Part 2 Result if else

อธิบายการทำงาน 1. ตรวจสอบว่าตัวแปรมีค่าที่ต้องการหรือไม่ if if ( sName == “Ronaldo” ) { sResult = “Real Madrid” } จุดสังเกตุ 1. เราใช้เครื่องหมายเปรียบเทียบ “==” เพื่อตรวจสอบว่า sName นั้นมีค่า “Ronaldo” ตามจริง จึงให้ sResult มีค่า “Real Madrid”  เพราะฉนั้นถ้าค่าของ sName ไม่ใช่ Ronaldo ค่า sResult ก็จะคงสภาพเป็นค่าว่างตามที่เราประกาศไว้ด้านบนของโปรแกรม 2. ตรวจสอบว่าตัวแปรมีค่าที่ต้องการหรือไม่ ถ้าไม่ใช่ให้ทำอย่างอื่น if..else if ( sName2 == “Rooney” ) { sResult = “Manchester United” } else {  sResult = “No Team” } ถ้า sName2 เป็นค่าที่ต้องถูกต้องให้ sResult เป็นค่า “Machester United” ถ้าไม่ใช่ ( else ) ให้ sResult เป็นค่าอื่นๆที่ต้องการ จากตัวอย่างคือ sResult = “No Team” เราลองเขียนให้เกิดชุดคำสั่งอื่นๆเพิ่มเติมใน else {  } ได้ครับ ไม่จำเป็นแค่การเปลี่ยนค่าของตัวแปร ที่นี้มาดูแบบที่ 3 กับ 4 จะคล้ายๆกัน เพียงแต่เพื่มเครื่องหมายตรวจสอบเงื่อนไขขึ้นมา ตามนี้ เครื่องหมายเพิ่มเติมที่ใช้ตรวจสอบเงื่อนไขใน Swift มีดังนี้

เครื่องหมาย
ความหมาย
ผล
&& และ ค่าที่ใช้ตรวจสอบเงื่อนไขต้องเป็นจริงๆทั้งหมด
|| หรือ ค่าที่ใช้ตรวจสอบเงื่อนไขไดเงื่อนไขหนึ่งเป็นจริง

จากตัวอย่างการตรวจสอบเงื่อนไขแบบที่ 3 ถ้า sName == “Ronaldo” && (และ) sName2 == “Rooney” ผลของ sResult จึงได้ “Friend!” จากตัวอย่างการตรวจสอบเงื่อนไขแบบที่ 4 ถ้า sName == “Ronaldo” || (หรือ) sName2 == “Rooney” ผลของ sResult จึงได้ “Good Player”

Note : ถ้าตัวแปรที่ใช้ตรวจสอบเงื่อนไขเป็นประเภท Bool (Boolean) ซึ่งจะเก็บค่า true, false เราไม่จำเป็นต้องใส่เครื่องหมายเลยก็ได้ เช่นvar bCheck : Bool = trueif (bCheck) { …. } ถ้าค่า bCheck เป็นจริง หรือif (!bCheck) { … } ถ้าค่า bCheck เป็นเท็จ (false) สังเกตุว่าเราใช้เครื่องหมาย ! นำหน้าตัวแปรประเภท Bool เพื่อกลับค่า true เป็น false หรือจาก false เป็น true ได้

ในกรณีที่เราต้องการตรวจสอบหลายๆเงื่อนไข และมีเงื่อนไขที่แน่นอน อยากให้ลองใช้คำสั่ง switch..case แทนนะครับ รูปแบบ switch(ตัวแปรที่กำหนดเงื่อนไข) { case “เงื่อนไขแรก” : ผลของเงื่อนไขแรก case “เงื่อนไขที่สอง” : ผลของเงื่อนไขที่สอง default : กรณีที่ไม่เข้าเงื่อนไขไดๆเลย ใช้ default } ลองเขียนโปรแกรมทดสอบการใช้งาน Switch Case ดูนะครับ

ThaiSwiftClass Condition Part 3 Switch Case
ThaiSwiftClass Condition Part 3 Switch Case
ThaiSwiftClass Condition Part 3 Switch Case Result
ThaiSwiftClass Condition Part 3 Switch Case Result

จากตัวอย่างเรากำหนด sGrade เป็น “A” ไว้เพื่อตรวจสอบผลสอบ โดยใส่ไว้ใน Switch แล้วให้ Case ดูว่า sGrade เป็นค่าอะไร แล้วพิมพ์ค่า sResult ออกทางหน้าจอ จะเห็นว่า Switch Case จะมีบทบาทในกรณีที่โปรแกรมของเรามีเงื่อนไขมาก และควรใช้แทน if else ในกรณีด้วย Switch Case ยังสามารถใช้ในกรณีที่ต้องการตรวจสอบค่าของตัวแปรที่ใช้ในเงื่อนไขมากกว่า 1 อย่าง โดนใช้ “,” คั่นระหว่างค่า ลองดูจากตัวอย่างต่อไปนี้

ThaiSwiftClass Condition Part 4 Switch Case
ThaiSwiftClass Condition Part 4 Switch Case
ThaiSwiftClass Condition Part 4 Switch Case Result
ThaiSwiftClass Condition Part 4 Switch Case Result

จากผลของโปรแกรมจะเห็นได้ว่าเราสามารถใส่ค่าในส่วนของ Case ได้มากกว่า 1 ค่า เช่น หาก User หรือผู้ใช้กรอก A หรือ a ระบบก็ยังสามารถคำนวนผลให้ได้ อีกความสามารถในการตรวจสอบเงื่อนไขของ Switch Case คือสามารถตรวจสอบเป็นช่วงๆได้ เช่นถ้า เรามีคะแนนอยู่ในระหว่าง 70-79 เราควรได้ “Very Good” โดยใน Case เราจะใช้ “…” (จุด 3 จุด) มาคั่น เช่น 70…79 ลองมาดูโค๊ดและลองทำตามดูครับ

ThaiSwiftClass Condition Part 5 Switch Case
ThaiSwiftClass Condition Part 5 Switch Case

ลอง Command + R เพื่อดูผลนะครับ

ThaiSwiftClass Condition Part 5 Switch Case Result
ThaiSwiftClass Condition Part 5 Switch Case Result

จากตัวอย่างนี้เรากำหนด iScore = 75 ไว้แล้วลองมาตรวจสอบเงื่อนไขโดยใช้ Switch Case ระบบจะเข้ามาดูว่าค่า 75 นั่นอยู่ในช่วงใดของ Case เพราะเรากำหนดไว้ที่ 70…79 ทำให้ iScore ตกอยู่ในช่วงนี้พอดี   จากบทนี้ : เราจะได้เรียนรู้สัญลักษณ์ วิธีเขียนโปรแกรมเพื่อตรวจสอบเงื่อนไข ทั้งการใช้ if else และ Switch Case เราสามารถนำไปประยุกต์ใช้งานต่างๆเช่น โปรแกรมตรวจสอบการ Log in หรือสมัครสมาชิก, ตรวจสอบอายุ,จัดอันดับ ฯลฯ หวังว่าคงสนุกกับการเขียนโปรแกรม Swift นะครับ แล้วพบกันบทต่อไป

Leave a Reply