Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก 886201 หลักการโปรแกรม 1 Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
ทางเลือก ???
คำสั่ง if-else เมื่อมีทางเลือก 2 ทางเลือก ใช้คำสั่ง if-elseตัดสินใจเพื่อเลือกการทำงานอย่างใดอย่างหนึ่ง จริง เท็จ เงื่อนไข โดยคำสั่ง if-else จะทำการทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงให้ทำงานอย่างหนึ่ง แต่ถ้าเงื่อนไขเป็นเท็จจะให้เลือกทำงานอีกอย่างหนึ่ง
รูปแบบคำสั่ง if-else เงื่อนไข statements_1; } else { statements_2; } stmts_2 F T เงื่อนไข stmts_ 1 *** ส่วนของ else นี้จะมีหรือไม่มีก็ได้
Condition หรือเงื่อนไข ในคำสั่ง if-else ค่าผลลัพธ์ที่เป็น ศูนย์ หรือ NULL หมายถึงเท็จ ค่าผลลัพธ์ที่ไม่ใช่ ศูนย์ หรือไม่ใช่ NULL หมายถึงจริง 0 / NULL หมายถึง เท็จ ไม่ใช่ 0 (non zero) / not NULL หมายถึง จริง
ตัวอย่าง 5 >= 0 จริง ผลลัพธ์ positive number int x = 5; if ( x >= 0 ) { cout << “positive number” << endl; } จริง ผลลัพธ์ positive number
ตัวอย่าง -5 >= 0 เท็จ ผลลัพธ์ negative number int x = -5; if ( x >= 0 ) { cout << “positive number” << endl; } else { cout << “negative number” << endl; } เท็จ ผลลัพธ์ negative number
แบบฝึกหัด if ( 5 ) cout << “ if ” << endl; else cout << “ else ” << endl; ผลลัพธ์ if
แบบฝึกหัด if ( -1 ) cout << “ if ” << endl; else cout << “ else ” << endl; ผลลัพธ์ if
แบบฝึกหัด ผลลัพธ์ else if ( 0 ) cout << “ if ” << endl; else cout << “ else ” << endl; ผลลัพธ์ else
แบบฝึกหัด int x = 10; if ( x ) cout << “ if ” << endl; else cout << “ else ” << endl; ผลลัพธ์ if
ตัวอย่าง int x = 20; if ( x >= 0 ) { cout << “ A ” << endl; } if ( x > 10 ) { cout << “ B ” << endl; ผลลัพธ์ A B
ตัวอย่าง int x = 5; if ( x >= 0 ) { cout << “ A ” << endl; } if ( x > 10 ) { cout << “ B ” << endl; } else { cout << “ C ” << endl; ผลลัพธ์ A C
การเปรียบเทียบทางตรรกะ สัญลักษณ์ ความหมาย = = เท่ากับ != ไม่เท่ากับ < น้อยกว่า <= น้อยกว่าหรือ > มากกว่า >= มากกว่าหรือ
ตัวอย่าง
การทดสอบเงื่อนไขที่มี && (and), || (or) และ !(not) การใช้ if-else นั้นเราสามารถเพิ่มเติมเงื่อนไขที่มีความซับซ้อนโดยการใช้ตัวเชื่อมทางตรรกะคือ && (and), || (or) หรือ ! (not) ตัวเชื่อม ! มีค่าความสำคัญในการคำนวณมากกว่าตัวเชื่อม && และ || ตัวเชื่อม && มีค่าความสำคัญในการคำนวณมากกว่าตัวเชื่อม ||
ตารางค่าความจริง A B A && B A || B ! A จริง เท็จ
ตัวอย่าง เท็จ จริง B = A + C if (A > 5 && A < 10) B = A + C;
ตัวอย่าง if (temp > 0 && temp < 100) { cout << "Liquid"; } cout << "Not liquid"; }
ตัวอย่าง
ตัวอย่าง
ลองพิจารณาตัวอย่างต่อไปนี้ if (0 <= temp <= 100) ดูเหมือนว่าจะเป็นเงื่อนไข 0 ≤ temp ≤ 100 แต่ว่า ...
ลองพิจารณาตัวอย่างต่อไปนี้ true 1 if ( 0 <= temp <= 100 ) ดูเหมือนว่าจะเป็นเงื่อนไข 0 ≤ temp ≤ 100 แต่ว่า ... false
Block interest > 0.5*payment tax = (payment – interest)*0.25 tax = (payment – interest)*0.15 True False netpay = payment – tax netpay = payment–tax+(0.005*tax) ส่วน statements ที่มีคำสั่งที่ต้องการทำมากกว่าหนึ่งคำสั่ง ต้องใช้เครื่องหมาย { ... } เพื่อรวมให้เป็นชุดของคำสั่ง ซึ่งเรียกว่า block เช่น if (interest > 0.5*payment) { tax = (payment – interest)*0.25; netpay = payment – tax; } else { tax = (payment – interest)*0.15; netpay = payment–tax+(0.005*tax);
ตัวอย่าง tmp<0 && prs > 2 st = 2 st = 5 prs = prs - 1 True False tmp<0 && prs > 2 st = 2 prs = prs - 1 if (tmp<0 && prs>2) { st = 5; prs = prs – 1; } else st = 2;
ตัวอย่าง if (total < 50) total<50 { total=total-score; True False score=score*1.5 total=total+score if (total < 50) { total=total-score; score=score*1.5; total=total+score; }
ตัวอย่าง tmp<0 && prs > 2 if (tmp<0 && prs>2) { st = 3; True False tmp<0 && prs > 2 st = st +2 prs = prs - 1 if (tmp<0 && prs>2) { st = 3; prs = prs – 1; } st = st + 2;
จงเขียนโปรแกรมคำนวณค่า absolute start stop read x x<0 abs = -x abs = x print x, abs T F
จงเขียนโปรแกรมคำนวณค่า absolute start stop read x x<0 abs = -x abs = x print x, abs T F #include <iostream> Using namespace std; int main() { int abs, x; cout << “Input an integer: ”; cin >> x; if ( x < 0 ) abs = -x; else abs = x; cout << “abs(” << x << “) = ” << x << endl; return 0; }