1. บทนำ
ภาษา C เป็นภาษาการเขียนโปรแกรมที่เรียบง่ายแต่ทรงพลังและถูกใช้อย่างแพร่หลาย หนึ่งในฟังก์ชันสำคัญคือ “การควบคุมทิศทางการทำงานของโปรแกรม” หรือที่เรียกว่าเงื่อนไข (Conditional Statements) โดยเฉพาะการใช้คำสั่ง if เพื่อจัดการหลายเงื่อนไข เป็นสิ่งจำเป็นในการสร้างตรรกะที่ซับซ้อน
บทความนี้จะอธิบายวิธีใช้คำสั่ง if ในภาษา C เพื่อกำหนดหลายเงื่อนไขอย่างละเอียด เข้าใจง่ายแม้สำหรับผู้เริ่มต้น ครอบคลุมตั้งแต่โครงสร้างพื้นฐานไปจนถึงตัวอย่างการประยุกต์ใช้งาน เพื่อให้คุณนำไปใช้ได้จริง
2. โครงสร้างพื้นฐานของคำสั่ง if ในภาษา C
คำสั่ง if คืออะไร?
คำสั่ง if ใช้ตรวจสอบว่าเงื่อนไขที่กำหนดเป็น “จริง” หรือไม่ หากเป็นจริงจะทำการประมวลผลตามที่กำหนด ในภาษา C โครงสร้างของ if มีดังนี้
if (เงื่อนไข) {
// โค้ดที่จะทำงานเมื่อเงื่อนไขเป็นจริง
}
ตัวอย่างพื้นฐาน
ตัวอย่างการตรวจสอบว่าตัวแปร x
เป็นค่าบวกหรือไม่
#include <stdio.h>
int main() {
int x = 10;
if (x > 0) {
printf("x เป็นค่าบวก\n");
}
return 0;
}
โค้ดนี้จะทำงานคำสั่ง printf
ก็ต่อเมื่อ x
มีค่ามากกว่า 0
จุดสำคัญของเงื่อนไขใน if
- สามารถใช้ค่าตัวเลข ตัวแปร และตัวดำเนินการตรรกะ (
&&
,||
,!
) ร่วมกันได้ - ในภาษา C ถ้าเงื่อนไขมีค่าไม่เท่ากับ 0 จะถือว่า “จริง” และถ้าเป็น 0 จะถือว่า “เท็จ”
3. ประเภทและบทบาทของตัวดำเนินการตรรกะในภาษา C
ตัวดำเนินการตรรกะคืออะไร?
เมื่อจัดการหลายเงื่อนไข เราต้องใช้ตัวดำเนินการตรรกะเพื่อรวมเงื่อนไขเข้าด้วยกัน ในภาษา C มีตัวดำเนินการหลัก 3 ตัวดังนี้
AND (และ: &&
)
- เป็นจริงก็ต่อเมื่อทั้งสองเงื่อนไขเป็นจริง
- ตัวอย่าง: ตรวจสอบว่าตัวแปร
a
อยู่ระหว่าง 10 ถึง 20
if (a >= 10 && a <= 20) {
printf("a อยู่ระหว่าง 10 ถึง 20\n");
}
OR (หรือ: ||
)
- เป็นจริงหากมีเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง
- ตัวอย่าง: ตรวจสอบว่าตัวแปร
b
เป็น 0 หรือ 100
if (b == 0 || b == 100) {
printf("b เป็น 0 หรือ 100\n");
}
NOT (ไม่: !
)
- ใช้กลับค่าของเงื่อนไข “จริง” จะกลายเป็น “เท็จ” และ “เท็จ” จะกลายเป็น “จริง”
- ตัวอย่าง: ตรวจสอบว่าตัวแปร
c
ไม่เท่ากับ 0
if (!(c == 0)) {
printf("c ไม่เท่ากับ 0\n");
}
ข้อควรระวัง
- เมื่อรวมตัวดำเนินการตรรกะ ควรใช้วงเล็บเพื่อเพิ่มความชัดเจนของการอ่านโค้ด
- ตัวอย่าง:
(a > 0 && b < 10) || c == 5
4. วิธีรวมหลายเงื่อนไขในภาษา C
การรวมหลายเงื่อนไขคืออะไร?
ในภาษา C สามารถใช้ if รวมหลายเงื่อนไขเข้าด้วยกัน เพื่อให้โค้ดสั้นและชัดเจนขึ้น โดยใช้ตัวดำเนินการตรรกะ (&&
, ||
) และวงเล็บ
ตัวอย่างการรวมหลายเงื่อนไข
ตัวอย่างนี้ตรวจสอบว่า x
อยู่ระหว่าง 10 ถึง 20 และ y
น้อยกว่า 30 หรือไม่
#include <stdio.h>
int main() {
int x = 15;
int y = 25;
if ((x >= 10 && x <= 20) && y < 30) {
printf("x อยู่ระหว่าง 10 ถึง 20 และ y น้อยกว่า 30\n");
} else {
printf("ไม่ตรงตามเงื่อนไข\n");
}
return 0;
}
เทคนิคเพิ่มความอ่านง่ายของเงื่อนไข
- ใช้วงเล็บ
- เพื่อกำหนดลำดับความสำคัญของเงื่อนไขให้ชัดเจน
- แยกเงื่อนไข
- แบ่งเงื่อนไขซับซ้อนออกเป็นตัวแปร เพื่อให้โค้ดสั้นลงและเข้าใจง่าย
5. การใช้ else if เพื่อการควบคุมหลายเงื่อนไข
else if คืออะไร?
else if ใช้เพื่อตรวจสอบหลายเงื่อนไขตามลำดับ และดำเนินการตามเงื่อนไขที่ตรง
ตัวอย่างการใช้ else if
#include <stdio.h>
int main() {
int num;
printf("กรุณาป้อนตัวเลข: ");
scanf("%d", &num);
if (num > 0) {
printf("ตัวเลขเป็นค่าบวก\n");
} else if (num < 0) {
printf("ตัวเลขเป็นค่าลบ\n");
} else {
printf("ตัวเลขเป็นศูนย์\n");
}
return 0;
}
6. การซ้อน if เพื่อเงื่อนไขขั้นสูง
ตัวอย่างการซ้อน if
#include <stdio.h>
int main() {
int x = 10;
int y = 5;
if (x > 0) {
if (y > 0) {
printf("x และ y เป็นค่าบวก\n");
} else {
printf("x เป็นค่าบวก แต่ y ไม่ใช่ค่าบวก\n");
}
} else {
printf("x ไม่ใช่ค่าบวก\n");
}
return 0;
}
7. ตัวอย่างจริง: โปรแกรมตรวจสอบหลายเงื่อนไข
ตัวอย่าง 1: ตรวจสอบตัวเลขในช่วง
#include <stdio.h>
int main() {
int number;
printf("กรุณาป้อนตัวเลข: ");
scanf("%d", &number);
if (number >= 10 && number <= 20) {
printf("ตัวเลขอยู่ระหว่าง 10 ถึง 20\n");
} else {
printf("ตัวเลขอยู่นอกช่วง\n");
}
return 0;
}
8. คำถามที่พบบ่อย (FAQ)
Q1: ทำไมหลายเงื่อนไขถึงไม่ทำงาน?
- สาเหตุ: ไม่เข้าใจลำดับความสำคัญของเงื่อนไข
- วิธีแก้: ใช้วงเล็บเพื่อทำให้ความหมายชัดเจน
9. สรุป
เรียนรู้การใช้ if และหลายเงื่อนไขในภาษา C เพื่อสร้างโปรแกรมที่ยืดหยุ่นและมีประสิทธิภาพมากขึ้น