ตรวจสอบเงื่อนไข สิ่งที่ต้องการให้กระท า (ค าสั่ง) จบการท างาน เท็จ จริง เรื่อง โครงสร้างทางเลือกแบบ if โครงสร้างทางเลือกแบบ if การเลือกท าโดวใช้ค าสั่ง if จะใช้ในกรณยทย่มยทางเลือกใร้ท างานอวู่เพยวงทางเลือกเดยววผลจากการ ตรวจสอบเงื่อนดขก็คือ ท ารรือดม่ท าตามค าสั่งนั้น รูปแบบ if ( เงื่อนดข ) สิ่งทย่ต้องการใร้กระท า ; ถ้าสิ่งทย่ต้องการใร้กระท ามยมากกว่ารนึ่งบรรทัด เราจะต้องใส่ปีกกา { } ดังนย้ If ( เงื่อนดข ) { สิ่งทย่ต้องการใร้กระท า 1; สิ่งทย่ต้องการใร้กระท า 2; สิ่งทย่ต้องการใร้กระท า 3; } ตรวจสอบเงื่อนไข สิ่งที่ต้องการให้กระท า1 (ค าสั่ง) จบการท างาน เท็จ จริง สิ่งที่ต้องการให้กระท า 2 (ค าสั่ง) ประกอบแผนการจัดการเรียนรู้ที่ 4 หน่วยการเรียนที่ 4 โครงสร้างการท างานแบบทางเลือก วิชา โปรแกรมภาษาเบื้องต้น ใบความรู้
การตรวจสอบเงื่อนดขจะใช้ตัวด าเนินการเปรยวบเทยวบ ดด้แก่ > มากกว่า >= มากกว่ารรือเท่ากับ < น้อวกว่า <= น้อวกว่ารรือเท่ากับ == เท่ากัน != ดม่เท่ากัน ในการตรวจสอบเงื่อนดขนั้นตัวแปรทย่น ามาเปรยวบเทยวบจะต้องเป็นข้อมูลประเภทเดยวงกัน การตรวจสอบ เงื่อนดขเขยวนดด้ดังนย้ if(ch = ‘A’) ถ้า ch เก็บรรัสแอสกยของ A จะเป็นจริง if (num == 8) ถ้า num มยค่าเท่ากับ 8 จะเป็นจริง if (mark == num) ถ้า mark มยค่าเท่ากับ num จะเป็นจริง ตัวอย่าง ถ้ารากคอมพิวเตอร์ท าค าสั่งต่อดปนย้ if (score >= 80 ) { printf(“Grade = 4”); } ถ้ารากค่าในตัวแปร score เป็นค่าต่างๆ จะท าใร้คอมพิวเตอร์ แสดงผลดังต่อดปนย้ score = 90 score = 80 score = 79 เงื่อนดขเป็นเท็จจะกระโดดข้าม Grade = 4 Grade = 4 Score >= 80 Grade = 4 จบการท างาน เท็จ จริง
ตัวอย่างโปรแกรม การใช้ค าสั่ง if มาสร้างเป็นโปรแกรมตรวจสอบรรัสผ่าน โดวในโปรแกรมจะก ารนดตัวเลขดว้ในตัวแปรเป็น 123 และคอมพิวเตอร์จะใร้ป้อนตัวเลขเข้าดป ถ้าค่าทย่ป้อนเข้าดปมยค่าเท่ากันคอมพิวเตอร์จะแสดงค าว่า *** Right Password*** จากโปรแกรมจะสังเกตเร็นว่านิพจน์รลัง if จะใช้เครื่องรมาว == ซึ่งเป็นการเปรยวบเทยวบว่าเท่ากันรรือดม่ (จะดม่ใช้ = ซึ่งเป็นเครื่องรมาวส ารรับการก ารนดค่า) ตัวอย่างแสดงผลการรันโปรแกรม 1. ประกาศฟังก์ชั่นส่วนหัว ให้เราใช้ค าสั่ง printf ได้ 2. ประกาศฟังก์ชั่นหลักเปิดใช้งาน 3. เริ่มใช้พื้นที่ในส่วนฟังก์ชั่นหลักโดยใช้วงเล็บปีกกาเปิด { 4. ประกาศตัวแปร pass เป็นข้อมูลชนิดเลขจ านวนเต็ม และแทนค่าให้ ตัวแปร pass = 123 5. ประกาศตัวแปร password เป็นข้อมูลชนิดเลขจ านวนเต็ม 6. แสดงข้อความ Enter your password=> ป้อนตัวเลขรหัสผ่าน และ ค าสั่งรับข้อมูลจากแป้นพิมพ์มาเก็บในตัวแปรชื่อ password 7. ตรวจสอบเงื่อนไข ถ้าค่าในตัวแปร password มีค่าเท่ากับ ค่าในตัวแปร pas จริงหรือไม่ ถ้าจริงไปท าบรรทัดที่ 9 ถ้าเป็นเท็จจะ กระโดดไปท าบรรทัด 11. 8. ค าสั่งหน่วงเวลาให้ดูผลรัน 9. สิ้นสุดฟังก์ชั่นหลัก } จบการท างาน Password = pass จบการท างาน เท็จ จริง เริ่มต้น pass , password pass = 123 password ***Right password ***
เรื่อง โครงสร้างทางเลือกแบบ if-else ค าสั่งเลือกท าแบบทางเดียว ( if-else ) ค าสั่ง if – else ใช้ในกรณยทย่มยทางเลือกใร้ท างาน 2 ทางเลือก การตรวจสอบเงื่อนดขจะใช้ค าสั่ง if – else โดวถ้าเงื่อนดขเป็นจริงจะท าค าสั่งรลัง if แต่ถ้าเงื่อนดขเป็นเท็จจะท าค าสั่งรลัง else โดวรูปแบบ if-else แสดง ดังต่อดปนย้ If (เงื่อนดข) สิ่งทย่ต้องการใร้กระท าถ้าเงื่อนดขเป็นจริง ; else สิ่งทย่ต้องการใร้กระท าถ้าเงื่อนดขเป็นเท็จ; รรือ If (เงื่อนไข) { สิ่งที่ต้องการให้กระท า 1 ; สิ่งที่ต้องการให้กระท า 2 ; } else { ถ้าเงื่อนไขข้างบนเป็นเท็จ จะกระท าสิ่งที่ต้องการให้ท า 1 ; ถ้าเงื่อนไขข้างบนเป็นเท็จ จะกระท าสิ่งที่ต้องการให้ท า 2 ; } ตรวจสอบเงื่อนไข สิ่งที่ต้องการให้กระท า (ค าสั่ง) จบการท างาน เท็จ จริง เงื่อนไขเป็นเท็จ สิ่งที่ต้องการให้กระท า ประกอบแผนการจัดการเรียนรู้ที่ 4 หน่วยการเรียนที่ 4 โครงสร้างการท างานแบบทางเลือก วิชา โปรแกรมภาษาเบื้องต้น ใบความรู้
ตัวอย่างการใช้ if–else ตัวอว่างนย้จะรับค่าเลขจ านวนเต็มจากแป้นพิมพ์ จากนั้นจะน าดปเปรยวบเทยวบกับ 0 ว่าค่าทย่รับมานั้นเป็นบวก รรือลบ จากนั้นจะแสดงประเภทของตัวเลขนั้นออกมา อธิบาย เริ่มต้น 1. ประกาศฟังก์ชั่นส่วนรัว ใร้ใช้ค าสั่งประมวลผลดด้ 2. ประกาศฟังก์ชั่นส่วนรัว ใร้เราใช้ค าสั่ง printf ดด้ 3. ประกาศฟังก์ชั่นรลักเปิดใช้งาน 4. เริ่มใช้พื้นทย่ในส่วนฟังก์ชั่นรลัก 5. ประกาศตัวแปร num เป็นข้อมูลชนิด เลขจ านวนเต็ม 6. แสดงข้อความ Enter a number => ป้อนตัวเลข และ ค าสั่งรับข้อมูลจากแป้นพิมพ์มาเก็บในตัวแปรชื่อ num 7. ตรวจสอบเงื่อนดข ถ้าค่าในตัวแปร num มยค่าน้อวกว่า 0 จริงรรือดม่ถ้าจริงดปท าบรรทัดทย่ 8. คือแสดงข้อความว่า number is negative ถ้าเป็นเท็จจะกระโดดดปท ารลังค าสั่ง else คือท าบรรทัดทย่ 9. แสดงข้อความว่า number is positive 10. ค าสั่งรน่วงเวลาใร้ดูผลรัน 11. สิ้นสุดฟังก์ชั่นรลัก } จบการท างานจบการท างาน num < 0 จบการท างาน เท็จ จริง เริ่มต้น num num Number is negative Number is positive
ตัวอว่างแสดงผลการรันโปรแกรม กรณีป้อนตัวเลข 1 ตัวอว่างแสดงผลการรันโปรแกรม กรณีป้อนตัวเลข -1
Nested –If ในบางครั้งอาจต้องมยการตรวจสอบเงื่อนดขรลาวๆ เงื่อนดขเป็นล าดับ จึงต้องมยการเขยวนค าสั่ง if-else ซ้อนกัน รลาวชั้น ในลักษณะของ Nested if ดังรูปแบบต่อดปนย้ If (เงื่อนดข 1) สิ่งทย่ต้องการใร้ท า 1; else if (เงื่อนดข 2) สิ่งทย่ต้องการใร้ท า 2; else สิ่งทย่ต้องการใร้ท า n; ……………………………………………………………………………………………………………. ตัวอย่างโปรแกรม nested if ตัวอว่าง โปรแกรมแสดงการรับข้อมูลทย่เป็นคะแนน แล้วท าการตรวจสอบเงื่อนดขเพื่อดด้เกรด โดวเกณฑ์ดังนย้ ถ้าคะแนน 80-100 จะใร้เกรด 4 ถ้าคะแนน 70 - 79 จะใร้เกรด 3 ถ้าคะแนน 60 - 69 จะใร้เกรด 2 ถ้าคะแนน 50 - 59 จะใร้เกรด 1 ถ้าคะแนน น้อวกว่า 50 จะใร้เกรด 0 ………………………………………………………………………………………………………………. ตรวจสอบเงื่อนไข 1 จบการท างาน เท็จ จริง สิ่งที่ต้องการให้ท า 1 ตรวจสอบเงื่อนไข สิ่งที่ต้องการให้ท า 2 สิ่งที่ต้องการให้ท า n ถ้าเงื่อนไขเป็นเท็จ เท็จ จริง
score >= 80 จบการท างาน เท็จ จริง score >= 70 เท็จ จริง จบการท างาน score,grade score grade = 4 grade = 3 จริง grade = 2 score >= 60 grade จริง grade = 1 score >= 50 grade = 0
ตัวอย่าง แสดงผลรันโปรแกรมตัดเกรด กรณีป้อนคะแนน 80 กรณีป้อนคะแนน 75 กรณีป้อนคะแนน 60-69 กรณีป้อนคะแนน 50 กรณีป้อนคะแนน 49 เริ่มต้น 1. ประกาศฟังก์ชั่นส่วนรัว ใร้ใช้ค าสั่งประมวลผลดด้ 2. ประกาศฟังก์ชั่นส่วนรัว ใร้เราใช้ค าสั่ง printf ดด้ 3. ประกาศฟังก์ชั่นรลักเปิดใช้งาน 4. เริ่มใช้พื้นทย่ในส่วนฟังก์ชั่นรลักปีกกาเปิด { 5. ประกาศตัวแปร score,grade เป็นข้อมูลชนิด เลขจ านวนเต็ม 6. แสดงข้อความ input score : เพื่อแจ้งใร้ผู้ใช้ป้อนคะแนนรวมและ ค าสั่งรับข้อมูล จากแป้นพิมพ์มาเก็บในตัวแปร score 7. ตรวจสอบเงื่อนดข ถ้าค่าในตัวแปร score >= 80 เป็นจริง จะดปท าบรรทัดทย่ 8 8. แทนค่าในส่วนของเงื่อนดขเป็นจริง grade = 4 แล้วกระโดดดปท าบรรทัด 17 จากการตรวจสอบเงื่อนดขบรรทัดทย่ 7 ถ้าเงื่อนดขเป็นเท็จจะกระโดดมาบรรทัดทย่ 9 9. แล้วตรวจสอบเงื่อนดขอยก ถ้าค่าในตัวแปร score >= 70 เป็นจริง จะดปท าบรรทัดทย่ 10 10. แทนค่าในส่วนของเงื่อนดขเป็นจริง grade = 3 แล้วกระโดดดป ท าบรรทัด 17 จากการตรวจสอบเงื่อนดขบรรทัดทย่ 9 ถ้าเงื่อนดขเป็นเท็จจะกระโดดมาบรรทัดทย่ 11 11. แล้วตรวจสอบเงื่อนดขอยก ถ้าค่าในตัวแปร score >= 60 เป็นจริง จะดปท าบรรทัดทย่ 12 12. แทนค่าในส่วนของเงื่อนดขเป็นจริง grade = 2 แล้วกระโดดดปท าบรรทัดทย่ 17 จากการตรวจสอบเงื่อนดขบรรทัดทย่ 11 ถ้าเงื่อนดขเป็นเท็จจะกระโดดมาบรรทัดทย่ 13 13. แล้วตรวจสอบเงื่อนดขอยก ถ้าค่าในตัวแปร score >= 50 เป็นจริง จะดปท าบรรทัดทย่ 14 14. แทนค่าในส่วนของเงื่อนดขเป็นจริง grade = 1 แล้วกระโดดดปท าบรรทัดทย่ 17 จากการตรวจสอบเงื่อนดขบรรทัดทย่ 13 ถ้าเงื่อนดขเป็นเท็จจะกระโดดมาบรรทัดทย่ 15 15. แล้วแทนค่าในส่วนของเงื่อนดขเป็นเท็จ grade = 0 แล้วกระโดดดปท าบรรทัดทย่ 17 16. แสดงข้อความ your grade is และค่าของตัวแปร grade 17. ค าสั่งรน่วงเวลาใร้ดูผลรัน 18. สิ้นสุดฟังก์ชั่นรลัก } จบการท างาน
สรุปท้ายบท ในการเขียนโปรแกรมจะต้องมีการสั่งให้โปรแกรมเลือกท าอย่างใดอย่างหนึ่งเราเรียกว่า ค าสั่งเลือกท าแบบทางเดียว (if) และค าสั่งเลือกท าอย่างใดอย่างหนึ่ง (if – else) ซึ่งก่อน โปรแกรมจะเลือกท านั้นจะต้องตรวจสอบเงื่อนไขก่อน การตรวจสอบเงื่อนไขนั้นผลลัพธ์จะเป็น จริงหรือเท็จเท่านั้น แต่ถ้าหากต้องการเลือกท าแบบหลายๆทาง จะใช้ค าสั่ง if-else มาซ้อนกัน และข้อสังเกต เงื่อนไขหลัง if จะต้องไม่มีเครื่องหมาย ; ถ้ามี ตัวคอมไพเลอร์จะมองเป็นค าสั่งว่าง