กิจกรรมที่ 4.1 การตัดสินใจ
![](https://static.wixstatic.com/media/b2c0a7_bb580a0123d14f2595467b9c94ba105c.png/v1/fill/w_150,h_240,al_c,q_85,enc_auto/b2c0a7_bb580a0123d14f2595467b9c94ba105c.png)
![](https://static.wixstatic.com/media/b2c0a7_7b848f13dfe54a07ae551c0d69f51463.png/v1/fill/w_75,h_120,al_c,q_85,enc_auto/b2c0a7_7b848f13dfe54a07ae551c0d69f51463.png)
![](https://static.wixstatic.com/media/b2c0a7_59fa4c152f0c4159828ef97d3626a2ee.png/v1/fill/w_225,h_175,al_c,q_85,enc_auto/b2c0a7_59fa4c152f0c4159828ef97d3626a2ee.png)
![](https://static.wixstatic.com/media/b2c0a7_6dc534709cc14f828ab97b7fe8987c63.png/v1/fill/w_70,h_70,al_c,q_85,enc_auto/b2c0a7_6dc534709cc14f828ab97b7fe8987c63.png)
![](https://static.wixstatic.com/media/b2c0a7_f362e66e3f8848e0afecbbd26488c49d.png/v1/fill/w_980,h_18,al_c,lg_1,q_85,enc_auto/b2c0a7_f362e66e3f8848e0afecbbd26488c49d.png)
จุดประสงค์การเรียนรู้ :
1. บอกค่าความจริงของประพจน์และเชื่อมประพจน์ได้
2. เขียนเงื่อนไขจากปัญหาต่างๆ ได้
3. อธิบายโครงสร้างการเขียนโปรแกรมแบบมีเงื่อนไขได้
4. เขียนโปรแกรมแบบมีเงื่อนไข (If…else) ได้
5. เขียนโปรแกรมแบบมีเงื่อนไข (switch…case) ได้
1. ประพจน์และค่าความจริง
1.1. ความหมายของประพจน์
ประพจน์ คือ ข้อความหรือประโยคที่มีค่าความจริงเป็นจริง(T) หรือเท็จ(F) อย่างใดอย่างหนึ่งเท่านั้น
ตัวอย่าง
- จำนวนคู่ได้แก่ 2,4,6 มีค่าความจริงเป็นจริง
- 0 มีค่าน้อยกว่า 8 มีค่าความจริงเป็นจริง
- เลข 1 เป็นจำนวนคู่ มีค่าความจริงเป็นเท็จ
- 3 มีค่ามากกว่า 7 มีค่าความจริงเป็นเท็จ
1.2 การเชื่อมประพจน์
เป็นการนำประพจน์มาเชื่อมกันมากกว่า 1 ประพจน์ ซึ่งสามารถบอกได้ว่าเป็นจริงหรือเป็นเท็จได้ ในการเขียนโปรแกรม
ก็นำเอาตัวเชื่อมประพจน์มาใช้ในเงื่อนไขต่างๆ เช่นกันเพื่อช่วยในการตัดสินใจของโปรแกรม และตัวเชื่อมประพจน์ที่นิยมนำมาใช้ในการเขียนโปรแกรม คือ “และ , หรือ” ซึ่งมีค่าความจริงดังที่แสดงในตาราง
![](https://static.wixstatic.com/media/d8a3dd_1bd8cf13b3a74bc19f705333741eaef0~mv2.png/v1/fill/w_58,h_49,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_1bd8cf13b3a74bc19f705333741eaef0~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_42ece650571a47eaa9ca25c67fd3a524~mv2.png/v1/fill/w_55,h_50,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_42ece650571a47eaa9ca25c67fd3a524~mv2.png)
![1280px-YouTube_Logo.svg.png](https://static.wixstatic.com/media/d8a3dd_59fae0a0f6d44500914f4790ddb7b452~mv2.png/v1/fill/w_79,h_34,al_c,q_85,usm_0.66_1.00_0.01,blur_3,enc_auto/1280px-YouTube_Logo_svg.png)
: KRU BinaryIT
2. การกำหนดเงื่อนไข
ในชีวิตประจำวันของมนุษย์มักต้องประสบกับปัญหาต่างๆ มากมาย ปัญหาต่างๆ ที่เกิดขึ้นนี้มีแนวทางในการแก้ปัญหาได้หลาก หลายวิธี ขึ้นอยู่กับเงื่อนไขต่างๆ ของปัญหา การเขียนโปรแกรมก็เช่นเดียวกัน ในการแก้ปัญหาก็จะต้องมีเงื่อนไขต่างๆ เข้ามาเกี่ยวข้อง มีการตัดสินใจเลือกได้ว่าจะทำหรือไม่ทำตามคำสั่งโดยขึ้นอยู่กับเงื่อนไขที่เรากำหนดขึ้นมา
การกำหนดเงื่อนไขสำหรับเขียนโปรแกรม จะต้องอาศัยตัวดำเนินการทางคณิตศาสตร์ (ซึ่งกล่าวไว้แล้วในบทที่ 2) เข้ามาช่วยในการกำหนดเงื่อนไขเพื่อนำไปสร้างเป็นเงื่อนไขในคำสั่งควบคุมทิศทางการทำงานของโปรแกรม เช่น If…else, for, switch…case เป็นต้น
![](https://static.wixstatic.com/media/d8a3dd_164abf1bfc504b25b2de082fd0e72368~mv2.png/v1/fill/w_62,h_23,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_164abf1bfc504b25b2de082fd0e72368~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_e5f2010225db48d3b524bbc64c7330ea~mv2.png/v1/fill/w_53,h_47,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_e5f2010225db48d3b524bbc64c7330ea~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_7f17a572f253497198bf2678c82ceb25~mv2.png/v1/fill/w_62,h_50,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_7f17a572f253497198bf2678c82ceb25~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_02a2d82828f04457a336ad663c0bdee1~mv2.png/v1/fill/w_66,h_36,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_02a2d82828f04457a336ad663c0bdee1~mv2.png)
![1280px-YouTube_Logo.svg.png](https://static.wixstatic.com/media/d8a3dd_59fae0a0f6d44500914f4790ddb7b452~mv2.png/v1/fill/w_79,h_34,al_c,q_85,usm_0.66_1.00_0.01,blur_3,enc_auto/1280px-YouTube_Logo_svg.png)
: KRU BinaryIT
3. คำสั่ง if…else
การเขียนโปรแกรมเพื่อให้มีการตัดสินใจสามารถใช้คำสั่ง if…else มาช่วยแก้ปัญหาได้ โดยมีรูปแบบของคำสั่ง 3 รูปแบบ คือ
1. if : ใช้กรณีเงื่อนไขเดียว
2. if…else : ใช้กรณีสองเงื่อนไข
3. if…else if : ใช้กรณีมากกว่าสองเงื่อนไข
3.1 การใช้งานคำสั่ง if : ใช้กรณีเงื่อนไขเดียว
![](https://static.wixstatic.com/media/d8a3dd_34197f6003234a92a4d2c66b7d087f5b~mv2.png/v1/crop/x_0,y_57,w_612,h_227/fill/w_65,h_24,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_34197f6003234a92a4d2c66b7d087f5b~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_c2b9316ac73f4883942cb6fbaae8a554~mv2.png/v1/fill/w_74,h_36,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_c2b9316ac73f4883942cb6fbaae8a554~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_bf260e09300845649c2a6b310697b130~mv2.png/v1/fill/w_74,h_47,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_bf260e09300845649c2a6b310697b130~mv2.png)
3.2 การใช้งานคำสั่ง if…else : ใช้กรณีสองเงื่อนไข
![](https://static.wixstatic.com/media/d8a3dd_3a6a7cc6648441f4a3b618a4f78fc753~mv2.png/v1/crop/x_0,y_49,w_615,h_330/fill/w_62,h_33,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_3a6a7cc6648441f4a3b618a4f78fc753~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_19032feb5a434dc3952d0311dfaadb02~mv2.png/v1/fill/w_72,h_53,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_19032feb5a434dc3952d0311dfaadb02~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_87eea7e43fef460ab0f9adf6f1bbb3c2~mv2.png/v1/fill/w_75,h_51,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_87eea7e43fef460ab0f9adf6f1bbb3c2~mv2.png)
3.3 การใช้งานคำสั่ง if…else if : ใช้กรณีมากกว่าสองเงื่อนไข
![](https://static.wixstatic.com/media/d8a3dd_49346de62b3043a78a1808a4a2f1f64d~mv2.png/v1/crop/x_0,y_38,w_686,h_406/fill/w_71,h_42,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_49346de62b3043a78a1808a4a2f1f64d~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_54262f9eb4154db09de40a7248fbd323~mv2.png/v1/fill/w_61,h_50,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_54262f9eb4154db09de40a7248fbd323~mv2.png)
อธิบาย
จากคำสั่งเป็นการตรวจสอบมากกว่า 2 เงื่อนไข คือ
- ตรวจสอบตัวแปร number1 มีค่าเท่ากับ number2 หรือไม่ หาก number1 มีค่าเท่ากับ number2 จริง ให้แสดง
ข้อความที่ textBox3 ว่า number1 เท่ากับ number2 ถ้าเงื่อนไขที่ 1 เป็นเท็จจะตรวจสอบเงื่อนไขถัดไป
- ตรวจสอบเงื่อนไขที่ 2 หากตัวแปร number1 มีค่ามากกว่า number2 จริง ให้แสดงข้อความที่ textBox3 ว่า
number1 มากกว่า number2 ถ้าเงื่อนไขที่ 2 เป็นเท็จอีก จะไปทำงานที่ else
- หากทุกเงื่อนไขเป็นเท็จ จะทำงานใน else โดยแสดงข้อความที่ textBox3 ว่า number1 น้อยกว่า number2
*** เมื่อตรวจสอบเจอเงื่อนไขที่เป็นจริงแล้วจะไม่ตรวจสอบเงื่อนไขถัดไปอีก
ตัวอย่างโปรแกรม
ตัวอย่างการใช้คำสั่ง if…else if กับโปรแกรมตัดเกรด โดยผู้ใช้งานป้อนคะแนน และคลิกปุ่มตัดเกรด โปรแกรมจะแสดงเกรดที่ได้ในคอนโทรล textbox ซึ่งโปรแกรมมีการออกแบบหน้าจอ ดังนี้
![](https://static.wixstatic.com/media/d8a3dd_cc53aa902db746f2b797dd9478d12638~mv2.png/v1/crop/x_72,y_144,w_571,h_350/fill/w_54,h_33,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_cc53aa902db746f2b797dd9478d12638~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_366f09852d034e239a03643e469c22c3~mv2.png/v1/fill/w_59,h_63,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_366f09852d034e239a03643e469c22c3~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_ec72bb94aa514b1cbb4221f2db067ad8~mv2.png/v1/fill/w_63,h_41,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_ec72bb94aa514b1cbb4221f2db067ad8~mv2.png)
![1280px-YouTube_Logo.svg.png](https://static.wixstatic.com/media/d8a3dd_59fae0a0f6d44500914f4790ddb7b452~mv2.png/v1/fill/w_79,h_34,al_c,q_85,usm_0.66_1.00_0.01,blur_3,enc_auto/1280px-YouTube_Logo_svg.png)
: KRU BinaryIT
4. คำสั่ง switch…case
เป็นการเขียนโปรแกรมเกี่ยวกับเงื่อนไขแต่ต่างกับคำสั่ง if else ตรงที่เป็นเงื่อนไขที่มีตัวเลือกให้เลือกมากกว่า 2 ตัวเลือก นั่นคือเป็นคำสั่งที่เหมาะกับเงื่อนไขที่มีตัวเลือกมาก หรืออาจจะพิจารณาดูจากโจทย์ปัญหาที่มีลักษณะการเขียนโปรแกรมเป็นแบบเมนูให้เลือก
![](https://static.wixstatic.com/media/d8a3dd_8e69a97d7ce94f99b55e7c8bc602c35c~mv2.png/v1/fill/w_70,h_38,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_8e69a97d7ce94f99b55e7c8bc602c35c~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_eb28456f8831443289fc87aad5e2550d~mv2.png/v1/fill/w_70,h_36,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_eb28456f8831443289fc87aad5e2550d~mv2.png)
อธิบาย
จากคำสั่งเป็นการตรวจสอบตัวแปร x ที่มีตัวเลือกจำนวน 4 ตัวเลือก ดังนี้
- ตรวจสอบตัวแปร x มีค่าเท่ากับ 1 หรือไม่ หาก x มีค่าเท่ากับ 1 จริง ให้เปิดภาพ one.gif ใน pictureBox1 แต่ถ้าเป็น
เท็จให้ตรวจสอบ case ถัดไป
- ตรวจสอบตัวแปร x มีค่าเท่ากับ 2 หรือไม่ หาก x มีค่าเท่ากับ 2 จริง ให้เปิดภาพ two.gif ใน pictureBox1 แต่ถ้าเป็น
เท็จให้ตรวจสอบ case ถัดไป
- ตรวจสอบตัวแปร x มีค่าเท่ากับ 3 หรือไม่ หาก x มีค่าเท่ากับ 3 จริง ให้เปิดภาพ three.gif ใน pictureBox1 แต่ถ้าเป็น
เท็จให้ตรวจสอบ case ถัดไป
- ตรวจสอบตัวแปร x มีค่าเท่ากับ 4 หรือไม่ หาก x มีค่าเท่ากับ 4 จริง ให้เปิดภาพ four.gif ใน pictureBox1 แต่ถ้าเป็น
เท็จให้ตรวจสอบ case ถัดไป
- เมื่อตรวจสอบตัวแปร x แล้วไม่ตรงกับ case ใดเลย ให้แสดงข้อความ “ป้อนตัวเลขไม่ถูกต้อง” ใน textBox1
ตัวอย่างโปรแกรม
ตัวอย่างการใช้คำสั่ง switch…case กับโปรแกรมอย่างง่ายสีบอกนิสัย โดยใช้คอนโทรล ListBox แสดงสีต่างๆ แล้วผู้ใช้งานคลิกเลือกสีที่ชอบ และคลิกปุ่มดูผลทำนาย มีการออกแบบหน้าจอ ดังนี้
![](https://static.wixstatic.com/media/d8a3dd_68c21d3f2b134358b2bd5deb1e879732~mv2.png/v1/crop/x_166,y_136,w_409,h_332/fill/w_110,h_89,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_68c21d3f2b134358b2bd5deb1e879732~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_fd578dfd1bcf46f49ac9bc208e6d628d~mv2.png/v1/fill/w_79,h_45,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_fd578dfd1bcf46f49ac9bc208e6d628d~mv2.png)
![](https://static.wixstatic.com/media/d8a3dd_276782f39fa14c6e9373f23c68a7d450~mv2.png/v1/fill/w_57,h_48,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_276782f39fa14c6e9373f23c68a7d450~mv2.png)
![1280px-YouTube_Logo.svg.png](https://static.wixstatic.com/media/d8a3dd_59fae0a0f6d44500914f4790ddb7b452~mv2.png/v1/fill/w_79,h_34,al_c,q_85,usm_0.66_1.00_0.01,blur_3,enc_auto/1280px-YouTube_Logo_svg.png)
: KRU BinaryIT
![](https://static.wixstatic.com/media/d8a3dd_5c5c9439b5084807999a8a4740f6f0b4~mv2.png/v1/fill/w_113,h_30,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/d8a3dd_5c5c9439b5084807999a8a4740f6f0b4~mv2.png)