เรียนรู้่ Condition (เงื่อนไขและทางเลือก)
โปรแกรมนี้จะรับค่า
a มาแล้วเช็คว่าหาร 2 ลงตัวหรือเปล่า
"even"
"odd"// oddeven.c
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
if (a % 2 == 0) {
printf("even\n");
} else {
printf("odd\n");
}
return 0;
}
a % 2
% เป็นเครื่องหมายชื่อ Modulo (หารเอาเศษ) เช่น
0 % 3 == 0 เพราะว่า 0 เขียนในรูป 3x + 0 ได้
1 % 3 == 1 เพราะว่า 1 เขียนในรูป 3x + 1 ได้
2 % 3 == 2 เพราะว่า 2 เขียนในรูป 3x + 2 ได้
3 % 3 == 0 เพราะว่า 3 เขียนในรูป 3x + 0 ได้
4 % 3 == 1 เพราะว่า 4 เขียนในรูป 3x + 1 ได้
5 % 3 == 2 เพราะว่า 5 เขียนในรูป 3x + 2 ได้
6 % 3 == 0 เพราะว่า 6 เขียนในรูป 3x + 0 ได้
7 % 3 == 1 เพราะว่า 7 เขียนในรูป 3x + 1 ได้
8 % 3 == 2 เพราะว่า 8 เขียนในรูป 3x + 2 ได้
9 % 3 == 2 เพราะว่า 9 เขียนในรูป 3x + 2 ได้
100 % 3 == 1
35 % 4 == 3
5 % 1000 == 5
85 % 11 = 8
==
เครื่องหมาย
= คือเช็คความเท่ากัน equal. เป็นหนึ่งใน operator ที่ใช้ได้ (operator ⊂ function)
การใช้
a == 13 เป็นการเปรียบเทียบว่าค่าที่ทดๆไว้ที่
a มีค่าเท่ากับ
13 หรือไม่
มีผลลัพท์เป็น
bool มีมีโอกาศเป็นได้สองค่าคือ
true)
false)นอกจาก
==แล้วยังมี comparator อย่างอื่นด้วยนะ
compare operation description สร้าง compare operation จากเครื่องหมาย <a == baมีค่า เท่ากับb!(a < b) && !(b < a)a !== baมีค่า ไม่เท่ากับb(a < b) || (b < a)a < baมีค่า น้อยกว่าba < ba > baมีค่า มากกว่าbb < aa <= baมีค่า น้อยกว่าหรือเท่ากับb!(b < a)a >= baมีค่า น้อยกว่าหรือเท่ากับb!(a < b)
if/else
if เป็นการแสดงเงื่อนไขการทำ ให้ทำถ้าเงื่อนไขเป็นจริง. และถ้าไม่จริงก็ไปทำ
else ต่อได้
if (condition) {
// ทำเมื่อ condition เป็นจริง
} else {
// ทำเมื่อ condition เป็นเท็จ
}
นอกจากนั้น ถ้ามีหลายเงื่อนไขก็สามารถ chain กันต่อได้
if (condition_a) {
__A;
} else {
if (condition_b) {
__B;
} else {
if (condition_c) {
__C;
} else {
__D;
}
}
}
แต่คำสั้งมีคำสั้งเดียว เราสามารถเอา
{} ออกได้ กลายเป็น
if (condition_a) {
__A;
} else
if (condition_b) {
__B;
} else
if (condition_c) {
__C;
} else {
__D;
}
จัดบรรทัดใหม่
if (condition_a) {
__A;
} else if (condition_b) {
__B;
} else if (condition_c) {
__C;
} else {
__D;
}
สำหรับบางภาษามีการออกแบบ syntax แยกของ
else ifเช่นpythonใช่elifแทนelse ifif cond_a: A() elif cond_b: B() elif cond_c: C() else: D()
// oddeven_ternary.c
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
printf(a % 2 == 0 ? "even\n" : "odd\n");
// หรือ
(a % 2 == 0)
? printf("even\n")
: printf("odd\n");
return 0;
}