|
|
|
|
มีความรู้ความเข้าใจในการใช้คำสั่งควบคุมแบบทางเลือก |
|
|
|
|
1. บอกวิธีการใช้คำสั่ง if - else และนำไปเขียนโปรแกรมได้ |
2. บอกวิธีการใช้คำสั่ง if - else if - else และนำไปเขียนโปรแกรมได้ |
3. บอกวิธีการใช้คำสั่ง switch และนำไปเขียนโปรแกรมได้ |
4. อธิบายการใช้คำสั่งแบบทางเลือกเชิงซ้อน และนำไปเขียนโปรแกรมได้ |
|
|
|
|
|
|
| 5.1.1 คำสั่ง if-else | 5.1.2 คำสั่ง if | |
|
|
|
หน่วยที่ 5 คำสั่งควบคุมแบบทางเลือก |
|
จากโปรแกรมที่ได้ศึกษามาจากหน่วยที่ 4 คำสั่งพื้นฐานในภาษาซี จะเป็นการทำงานทีละคำสั่งตามลำดับขั้น สามารถเขียนผังงาน (Flowchart) ได้ดังภาพ |
|
แสดงรูปแบบผังงานแบบตามลำดับขั้นทั่วไป |
|
|
ลักษณะของการทำงานทีละคำสั่งแบบตามลำดับขั้นนั้น คำสั่งทุกคำสั่งจะถูกประมวลผลตั้งแต่เริ่มต้นจนสิ้นสุดโปรแกรม ถือเป็นโปรแกรมการทำงานที่ไม่ซับซ้อน |
|
ในภาษาซียังมีคำสั่งควบคุมแบบอื่น ที่ให้เลือกทำหรือไม่ทำคำสั่งก็ได้ ตามเงื่อนไขที่กำหนดไว้ ลักษณะนี้เรียกว่า โครงสร้างแบบทางเลือก มีคำสั่งควบคุมแบบทางเลือก ดังต่อไปนี้ |
|
จากหน่วยที่ 3 ข้อมูลพื้นฐานและตัวดำเนินการ ได้เรียนรู้ตัวดำเนินการเปรียบเทียบ ตัวดำเนินการตรรกะและนิพจน์ แล้ว ซึ่งสามารถนำมาประยุกต์ใช้กับหน่วยนี้ในส่วนของการกำหนดเงื่อนไขทางเลือก โปรแกรมจะซับซ้อนมากหรือน้อย ก็ขึ้นอยู่กับเงื่อนไขว่าซับซ้อนมากน้อยระดับใด หากเงื่อนไขซับซ้อนมาก โปรแกรมก็จะซับซ้อนมาก หากเงื่อนไขซับซ้อนน้อย โปรแกรมก็จะซับซ้อนน้อยด้วยเช่นกัน |
|
|
|
5.1.1 คำสั่ง if-else |
|
ผังงานแสดงการทำงานแบบทางเลือก (แบบ 2 ทาง) |
|
|
|
คำสั่ง if-else ใช้สำหรับการเขี่ยนโปรแกรมเลือกทำตามเงื่อนไขทางเลือกที่กำหนด
มีรูปแบบดังนี้ |
|
|
|
|
|
|
5.1.2 คำสั่ง if |
|
ผังงานแสดงการทำงานแบบทางเลือก (แบบทางเดียว) |
|
|
|
คำสั่ง if ใช้สำหรับให้ทำคำสั่ง เฉพาะกรณีที่เงือนไขทางเลือก เป็นจริง
และไม่ต้องทำอะไร เมื่อเงื่อนไขเป็นเท็จ มีรูปแบบดังนี้ |
|
|
ข้อสังเกต 1. หากเงื่อนไขทางเลือก มีค่าเป็นเท็จ จะไม่มีการประมวลผลคำสั่งใด ๆ |
|
2. หากมีคำสั่งใน if มากกว่า 1 คำสั่ง ต้องเขียนคำสั่งภายใต้เครื่องหมาย {} |
|
|
|
|
|
ตัวอย่างที่ 1 |
จงเขียนโปรแกรมตัดเกรด ผ่าน/ตก ( ex5-01.c ) |
|
โดยคะแนน >= 50 ผ่าน และ คะแนน < 50 ตก |
|
จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ |
|
|
|
|
|
จากผังงาน เขียนโปรแกรมได้ดังนี้ |
|
|
บรรทัด |
รหัสต้นฉบับ (Source Code) |
อธิบายคำสั่ง |
/*1*/ |
#include <stdio.h> |
/* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ |
/*2*/ |
int main() { |
/* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ |
/*3*/ |
int score ; |
/* ประกาศตัวแปร score เป็นชนิดจำนวนเต็ม (สำหรับเก็บคะแนน) */ |
/*4*/ |
printf("Input Score : "); |
/* แสดงข้อความ "Input Score : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*5*/ |
scanf("%d" , &score); |
/* รับค่าคะแนนเป็นจำนวนเต็ม จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร score เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*6*/ |
if (score >= 50) |
/* ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 50 จริงหรือไม่ ถ้าจริง เริ่มทำคำสั่งหลังเงื่อนไข บรรทัดที่ 7 ถ้าเท็จ เริ่มทำคำสั่งหลัง else บรรทัดที่ 9 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*7*/ |
printf("%d -> Pass" , score); |
/* แสดงข้อความ "%d -> Pass" โดยแสดงค่า score ใน %d เสร็จแล้วไปทำคำสั่งบรรทัดที่ 10 */ |
/*8*/ |
else |
/* ทำกรณีผลการตรวจสอบเงื่อนไข ในคำสั่งบรรทัดที่ 6 เป็นเท็จ */ |
/*9*/ |
printf("%d -> Fail" , score); |
/* แสดงข้อความ "%d -> Fail" โดยแสดงค่า score ใน %d เสร็จแล้วไปทำคำสั่งบรรทัดที่ 10 */ |
/*10*/ |
return 0; |
/* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ |
/*11*/ |
} |
/* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ |
|
|
|
ตัวอย่างผลการรันโปรแกรม |
|
|
|
|
|
|
|
ตัวอย่างที่ 2 |
จงเขียนโปรแกรมตรวจสอบเลขคู่เลขคี่ ( ex5-02.c ) |
|
|
จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ |
|
|
|
|
|
จากผังงาน เขียนโปรแกรมได้ดังนี้ |
|
|
บรรทัด |
รหัสต้นฉบับ (Source Code) |
อธิบายคำสั่ง |
/*1*/ |
#include <stdio.h> |
/* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ |
/*2*/ |
int main() { |
/* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ |
/*3*/ |
int num ; |
/* ประกาศตัวแปร num เป็นชนิดจำนวนเต็ม */ |
/*4*/ |
printf("Input Number : "); |
/* แสดงข้อความ "Input Number : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*5*/ |
scanf("%d" , &num); |
/* รับค่าจำนวนเต็ม จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร num เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*6*/ |
if (num % 2 == 0) |
/* ตรวจสอบ ค่า num % 2 เท่ากับ 0 จริงหรือไม่ ถ้าจริง เริ่มทำคำสั่งหลังเงื่อนไข บรรทัดที่ 7 ถ้าเท็จ เริ่มทำคำสั่งหลัง else บรรทัดที่ 9 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*7*/ |
printf("%d is Even." , num); |
/* แสดงข้อความ "%d is Even." โดยแสดงค่า num ใน %d เสร็จแล้วไปทำคำสั่งบรรทัดที่ 10 */ |
/*8*/ |
else |
/* ทำกรณีผลการตรวจสอบเงื่อนไข ในคำสั่งบรรทัดที่ 6 เป็นเท็จ */ |
/*9*/ |
printf("%d is Odd." , num); |
/* แสดงข้อความ "%d is Odd." โดยแสดงค่า num ใน %d เสร็จแล้วไปทำคำสั่งบรรทัดที่ 10 */ |
/*10*/ |
return 0; |
/* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ |
/*11*/ |
} |
/* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ |
|
|
|
ตัวอย่างผลการรันโปรแกรม |
|
|
|
|
|
|
|
ตัวอย่างที่ 3 |
จงเขียนโปรแกรมรับค่าจำนวนจริง 2 จำนวน แล้วหาผลหาร โดยจำนวนแรกเป็นตัวตั้ง จำนวนที่ 2 เป็นตัวหาร หากตัวหารเป็น 0 ให้แจ้งข้อความว่า "cannot devide by zero." ( ex5-03.c ) |
|
|
จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ |
|
|
|
|
|
จากผังงาน เขียนโปรแกรมได้ดังนี้ |
|
|
บรรทัด |
รหัสต้นฉบับ (Source Code) |
อธิบายคำสั่ง |
/*1*/ |
#include <stdio.h> |
/* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ |
/*2*/ |
int main() { |
/* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ |
/*3*/ |
float x , y ; |
/* ประกาศตัวแปร x และ y เป็นชนิดจำนวนจริง */ |
/*4*/ |
printf("<<< x divide by y >>>\n"); |
/* แสดงข้อความ "<<< x divide by y >>>" ทางจอภาพ แจ้งผู้ใช้โปรแกรม แล้วขึ้นบรรทัดใหม่ */ |
/*5*/ |
printf("Input Number x : "); |
/* แสดงข้อความ "Input Number x : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*6*/ |
scanf("%f" , &x); |
/* รับค่าจำนวนจริง จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร x เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*7*/ |
printf("Input Number y : "); |
/* แสดงข้อความ "Input Number y : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*8*/ |
scanf("%f" , &y); |
/* รับค่าจำนวนจริง จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร y เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*9*/ |
if (y == 0.0) |
/* ตรวจสอบ ค่า y เท่ากับ 0 จริงหรือไม่ ถ้าจริง เริ่มทำคำสั่งหลังเงื่อนไข บรรทัดที่ 10 ถ้าเท็จ เริ่มทำคำสั่งหลัง else บรรทัดที่ 12 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*10*/ |
printf("\ncannot devide by zero."); |
/* ขึ้นบรรทัดใหม่ แล้วแสดงข้อความ "cannot devide by zero." เสร็จแล้วไปทำคำสั่งบรรทัดที่ 13 */ |
/*11*/ |
else |
/* ทำกรณีผลการตรวจสอบเงื่อนไข ในคำสั่งบรรทัดที่ 9 เป็นเท็จ */ |
/*12*/ |
printf("\n%.2f/%.2f = %.2f" , x , y ,x/y); |
/* ขึ้นบรรทัดใหม่ แล้วแสดงข้อความ "%.2f/%.2f = %.2f" โดยแสดงค่า x ใน %.2f ตัวแรก แสดงค่า y ใน %.2f ตัว 2 และแสดงค่า x / y ใน %.2f ตัว 3 เป็นจำนวนจริงทศนิยม 2 ตำแหน่ง เสร็จแล้วไปทำคำสั่งบรรทัดที่ 13 */ |
/*13*/ |
return 0; |
/* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ |
/*14*/ |
} |
/* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ |
|
|
|
ตัวอย่างผลการรันโปรแกรม (ทั้งกรณีเงื่อนไขเป็นจริงและเท็จ) |
|
|
|
|
|
|
|
|
|
|
ตัวอย่างที่ 4 |
จงเขียนโปรแกรมรับจำนวนเต็ม 2 จำนวน แล้วเรียงจำนวนจากน้อยไปมาก
( ex5-04.c ) |
|
|
จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ |
|
|
|
|
|
จากผังงาน เขียนโปรแกรมได้ดังนี้ |
|
|
บรรทัด |
รหัสต้นฉบับ (Source Code) |
อธิบายคำสั่ง |
/*1*/ |
#include <stdio.h> |
/* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ |
/*2*/ |
int main() { |
/* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ |
/*3*/ |
int a , b , temp ; |
/* ประกาศตัวแปร a b และ temp เป็นชนิดจำนวนเต็ม (a และ b สำหรับเก็บจำนวนที่จะนำมาสลับกัน ส่วน temp เอาไว้พักข้อมูลชั่วคราว) */ |
/*4*/ |
printf("swap (small -> big)\n"); |
/* แสดงข้อความ "swap (small -> big)" แจ้งผู้ใช้โปรแกรม แล้วขึ้นบรรทัดใหม่ */ |
/*5*/ |
printf("Input Number a : "); |
/* แสดงข้อความ "Input Number a : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*6*/ |
scanf("%d" , &a); |
/* รับค่าจำนวนเต็ม จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร a เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*7*/ |
printf("Input Number b : "); |
/* แสดงข้อความ "Input Number b : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*8*/ |
scanf("%d" , &b); |
/* รับค่าจำนวนเต็ม จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร b เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*9*/ |
if (a > b) { |
/* ตรวจสอบ ค่า a มากกว่า ค่า b จริงหรือไม่ ถ้าจริง เริ่มทำคำสั่งหลังเงื่อนไข บรรทัดที่ 10 ถ้าเท็จ (ในโปรแกรมนี้ไม่มีคำสั่งกรณีเป็นเท็จ) ให้ไปทำคำสั่งบรรทัดที่ 14 (มีคำสั่งย่อยมากกว่า 1 คำสั่ง ต้องเขียนคำสั่งย่อยภายในเครื่องหมาย { } */ |
/*10*/ |
temp = a; |
/* เป็นคำสั่งกำหนดค่า โดยนำค่า a ไปเก็บไว้ในตัวแปร temp */ |
/*11*/ |
a = b; |
/* เป็นคำสั่งกำหนดค่า โดยนำค่า b ไปเก็บไว้ในตัวแปร a */ |
/*12*/ |
b = temp; |
/* เป็นคำสั่งกำหนดค่า โดยนำค่า temp ไปเก็บไว้ในตัวแปร b */ |
/*13*/ |
} |
/* สิ้นสุด block ขอบเขตของคำสั่ง if กรณีเป็นจริง (ในบรรทัดที่ 9) */ |
/*14*/ |
printf("\n%d %d" , a , b); |
/* ขึ้นบรรทัดใหม่ 1 บรรทัด แล้วแสดงข้อความ "%d %d" โดยแสดงค่า a ใน %d ตัวแรก และแสดงค่า b ใน %d ตัวที่ 2 */ |
/*15*/ |
return 0; |
/* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ |
/*16*/ |
} |
/* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ |
|
|
|
ตัวอย่างผลการรันโปรแกรม |
|
|
|
|
|
|
|
|
|
คำสั่ง if-else if-else เป็นคำสั่งควบคุมแบบทางเลือก แบบมีเงื่อนไขทางเลือกหลายเงื่อนไข ลักษณะการทำงานจะตรวจสอบเงื่อนไขทางเลือก ลำดับบนสุดก่อน หากตรวจสอบแล้ว พบว่า เงื่อนไขทางเลือก
- มีค่าเป็นจริง จะทำคำสั่งที่อยู่ถัดจากเงื่อนไขทางเลือกนั้น แล้วจะออกจากคำสั่ง if ไปทำคำสั่งถัดไป โดยไม่ตรวจสอบเงื่อนไขทางเลือกที่เหลืออีก
- มีค่าเป็นเท็จ จะตรวจสอบเงื่อนไขทางเลือกลำดับถัดไป
- มีค่าเป็นเท็จทั้งหมด (ไม่มีเงื่อนไขใดเป็นจริงเลย) จะทำคำสั่งที่อยู่ถัดจาก else |
|
ผังงานแสดงการทำงาน คำสั่ง if-else if-else |
|
|
|
คำสั่ง if-else if-else มีรูปแบบการใช้ ดังนี้ |
|
|
ข้อสังเกต หากมีคำสั่งใน if มากกว่า 1 คำสั่ง ต้องเขียนคำสั่งภายใต้เครื่องหมาย {} |
|
|
|
|
|
ตัวอย่างที่ 5 |
จงเขียนโปรแกรมตัดเกรด 5 เกรด ตามช่วงคะแนน ดังนี้ ( ex5-05.c ) |
|
ช่วงคะแนน |
เกรด |
>= 80 |
4.00 |
>= 70 และ < 80 |
3.00 |
>= 60 และ < 70 |
2.00 |
>= 50 และ < 60 |
1.00 |
< 50 |
0.00 |
|
จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ |
|
|
|
|
|
จากผังงาน เขียนโปรแกรมได้ดังนี้ |
|
|
บรรทัด |
รหัสต้นฉบับ (Source Code) |
อธิบายคำสั่ง |
/*1*/ |
#include <stdio.h> |
/* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ |
/*2*/ |
int main() { |
/* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ |
/*3*/ |
int score; |
/* ประกาศตัวแปร score เป็นชนิดจำนวนเต็ม */ |
/*4*/ |
float grade; |
/* ประกาศตัวแปร grade เป็นชนิดจำนวนจริง */ |
/*5*/ |
printf("+++ Grade +++\n"); |
/* แสดงข้อความ "+++ Grade +++" แจ้งผู้ใช้โปรแกรม แล้วขึ้นบรรทัดใหม่ */ |
/*6*/ |
printf("Input Score : "); |
/* แสดงข้อความ "Input Score : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ |
/*7*/ |
scanf("%d" , &score); |
/* รับค่าจำนวนเต็ม จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร score เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ |
/*8*/ |
if (score >= 80) |
/* ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 80 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 9 ถ้าเท็จ ทำคำสั่งบรรทัดที่ 10 */ |
/*9*/ |
grade = 4.00; |
/* เป็นคำสั่งกำหนดค่า โดยนำ 4.00 ไปเก็บไว้ในตัวแปร grade เสร็จแล้วให้ไปเริ่มทำคำสั่งบรรทัดที่ 18 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*10*/ |
else if (score >= 70) |
/* ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 70 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 11 ถ้าเท็จ ทำคำสั่งบรรทัดที่ 12 */ |
/*11*/ |
grade = 3.00; |
/* เป็นคำสั่งกำหนดค่า โดยนำ 3.00 ไปเก็บไว้ในตัวแปร grade เสร็จแล้วให้ไปเริ่มทำคำสั่งบรรทัดที่ 18 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*12*/ |
else if (score >= 60) |
/* ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 60 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 13 ถ้าเท็จ ทำคำสั่งบรรทัดที่ 14 */ |
/*13*/ |
grade = 2.00; |
/* เป็นคำสั่งกำหนดค่า โดยนำ 2.00 ไปเก็บไว้ในตัวแปร grade เสร็จแล้วให้ไปเริ่มทำคำสั่งบรรทัดที่ 18 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*14*/ |
else if (score >= 50) |
/* ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 50 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 15 ถ้าเท็จ ทำคำสั่งหลัง else บรรทัดที่ 17 */ |
/*15*/ |
grade = 1.00; |
/* เป็นคำสั่งกำหนดค่า โดยนำ 1.00 ไปเก็บไว้ในตัวแปร grade เสร็จแล้วให้ไปเริ่มทำคำสั่งบรรทัดที่ 18 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*16*/ |
else |
/* ทำเมื่อกรณีตรวจสอบเงื่อนไขบรรทัดที่ 14 เป็นเท็จ */ |
/*17*/ |
grade = 0.00; |
/* เป็นคำสั่งกำหนดค่า โดยนำ 0.00 ไปเก็บไว้ในตัวแปร grade เสร็จแล้วให้ไปเริ่มทำคำสั่งบรรทัดที่ 18 (มีคำสั่งย่อยคำสั่งเดียวไม่ต้องใส่ { } ก็ได้) */ |
/*18*/ |
printf("\nScore : %d -> Grade : %.2f" , score , grade); |
/* ขึ้นบรรทัดใหม่ 1 บรรทัด แล้วแสดงข้อความ "Score : %d -> Grade : %.2f" โดยแสดงค่า score ใน %d และแสดงค่า grade ใน %.2f เป็นทศนิยม 2 ตำแหน่ง */ |
/*19*/ |
return 0; |
/* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ |
/*20*/ |
} |
/* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ |
|
|
|
ตัวอย่างผลการรันโปรแกรม |
|
|
|
|
|
|