คำสั่งควบคุม
ในบทก่อนหน้า คุณได้เรียนพื้นฐานของภาษา C++ ไปแล้ว ในบทนี้ คุณจะได้เรียนเกี่ยวกับการควบคุมโปรแกรมโดยการใช้คำสั่งควบคุม อย่างเช่น if, if else, switch, for, while, do while คำสั่งเหล่านี้ใช้เพื่อควบคุมโปรแกรมเพื่อให้ไปในทิศทางที่เราต้องการ
คำสั่ง if, if else, และ switch ถูกใช้เพื่อควบคุมโปรแกรมโดยมีเงื่อนไขเป็น Expression กำหนดเงื่อนไข คำสั่งวนซ้ำ เช่น for, while, และ do while ถูกใช้เพื่อทำซ้ำส่วนของโค้ดตามเงื่อนไขของ Expression จนกว่าเงื่อนไขจะเป็นเท็จ
คำสั่ง if
บทความลอกมาจาก http://thecprogrammingproject.weebly.com/358836353626363336563591-if-364936213632-if-else.html
เงื่อนไขทางเลือก ที่เขียนอยู่ระหว่างเครื่องหมาย ( และ ) เป็นนิพจน์ใด ๆ ที่สามารถประเมินค่าได้
- ในกรณีที่ เงื่อนไขทางเลือก มีค่าเป็น จริง และไม่เท่ากับ 0
- จะประมวลผลคำสั่ง
- ในกรณีที่ เงื่อนไขทางเลือก มีค่าเป็น เท็จ และเท่ากับ 0
- จะไม่ประมวลผลคำสั่ง
ตัวอย่าง โปรแกรมทายตัวเลข 1
จากการรันครั้งที่ 1 ตัวแปร y (ในบรรทัดที่ 7) รับค่าจากแป้นพิมพ์ เท่ากับ 18 (ในบรรทัดที่ 10) นิพจน์เปรียบเทียบ y == TARGET (ในบรรทัดที่ 12) จะมีค่าเป็นเท็จ แล้วฟังก์ชัน printf( ) (ในบรรทัดที่ 13) จะไม่ได้ถูกประมวลผล แต่ไปประมวลผลต่อในคำสั่งถัดไป (ในบรรทัดที่ 14) และจนจบโปรแกรม
จากการรันครั้งที่ 2 ตัวแปร y รับค่าจากแป้นพิมพ์ เท่ากับ 25 ทำให้นิพจน์เปรียบเทียบ y == TARGET มีค่าเป็นจริง แล้วฟังก์ชัน printf( ) (ในบรรทัดที่ 13) ถูกประมวลผล แล้วประมวลผลต่อในคำสั่งถัดไปจนจบโปรแกรม
จากการรันครั้งที่ 2 ตัวแปร y รับค่าจากแป้นพิมพ์ เท่ากับ 25 ทำให้นิพจน์เปรียบเทียบ y == TARGET มีค่าเป็นจริง แล้วฟังก์ชัน printf( ) (ในบรรทัดที่ 13) ถูกประมวลผล แล้วประมวลผลต่อในคำสั่งถัดไปจนจบโปรแกรม
บทความลอกมาจากhttp://marcuscode.com/lang/cpp/flow-control
คำสั่ง If เป็นคำสั่งที่เป็นพื้นฐานที่สุดสำหรับควบคุมการทำงานในภาษา C++ คำสั่ง If ถูกใช้เพื่อควบคุมโปรแกรมกับเงื่อนไขที่กำหนด โค้ดในบล็อคของ คำสั่ง If จะทำงานถ้าเงื่อนไขตรงหรือเป็นจริง เรามักจะใช้คำสั่ง If ในกรณีที่โปรแกรมนั้นต้องทำงานภายใต้เงื่อนไขบางอย่าง นี่เป็นรูปแบบของการใช้งานคำสั่ง If ในภาษา C++
if (expression)
{
// statements
}
ในรูปแบบการทำงานของคำสั่ง
if
นั้นจะทำการตรวจสอบเงื่อนไขที่สร้างจาก expression
ภายในบล็อคของคำสั่งนั้นจะล้อมรอบด้วยวงเล็บปีกกา {...}
ภายในบล็อคนั้นสามารถประกอบไปด้วยตั้งแต่หนึ่งถึงหลายคำสั่ง นี่เป็นตัวอย่างการใช้งานคำสั่ง if
ในภาษา C++#include <iostream>
using namespace std;
int main()
{
int n = 10;
if (n == 10)
{
cout << "n is 10";
}
return 0;
}
ในตัวอย่างนี้ เราได้ใช้คำสั่ง
if
เพื่อตรวจสอบว่าตัวแปร n
มีค่าเท่ากับ 10
หรือไม่ ถ้าตรงกับเงื่อนไขหรือเงื่อนไขเป็นจริง โปรแกรมจะทำงานในบล็อคของ if
คือ cout << "n is 10"
ซึ่งเป็นการแสดงผลข้อความว่า "n มีค่าเป็น 10"
ตัวอย่างการใช้คำสั่ง if ลอกมาจากhttps://www.youtube.com/watch?v=Lz2F4mhsrs4&list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i&index=43
การใช้ if ในการคำนวณค่าธรรมเนียมโอนเงินผ่าน PromptPay
#include <iostream>
using namespace std;
int fee(double amt) {
int f = 0;
if (amt <= 5000) {
f = 0;
} else if (amt > 5000 && amt <= 30000) {
f = 2;
} else if (amt > 30000 && amt <= 100000) {
f = 5;
} else if (amt > 100000 && amt <= 200000) {
f = 10;
}
return f;
}
int fee2(double amt) {
int f = 0;
if (amt > 100000 && amt <= 200000) {
f = 10;
} else if (amt > 30000) {
f = 5;
} else if (amt > 5000) {
f = 2;
} else if (amt > 0) {
f = 0;
}
return f;
}
int fee3(double amt) {
int f = 0;
if (amt > 100000 && amt <= 200000) {
return 10;
} else if (amt > 30000) {
return 5;
} else if (amt > 5000) {
return 2;
} else if (amt > 0) {
return 0;
}
}
int main() {
int amt; // = 150000;
cout << "enter amount: ";
cin >> amt;
cout << "transfer amount = " << amt << ", fee = " << fee(amt) << endl;
cout << "transfer amount = " << amt << ", fee = " << fee2(amt) << endl;
cout << "transfer amount = " << amt << ", fee = " << fee3(amt) << endl;
return 0;
}
การใช้ if ในการคำนวณค่าจอดรถตามระยะเวลา
แสดงขั้นตอนการออกแบบและวิเคราะห์โปรแกรมสำหรับคำนวณค่าจอดรถตามระยะเวลาที่จอด
สอนแนวคิดในการออกแบบและเขียนฟังก์ชัน เพื่อให้มีการทำงานที่ยืดหยุ่น
#include <iostream>
using namespace std;
int parkingRate(int mm) {
int hours = mm / 60;
int minutes = mm % 60;
if (minutes > 10) {
// hours=hours+1;
hours++;
}
return hours * 10;
}
int parkingRate2(int mm, int ratePerHour = 10) {
int hours = mm / 60;
int minutes = mm % 60;
if (minutes > 10) {
// hours=hours+1;
hours++;
}
return hours * ratePerHour;
}
/**
* calculate parking fee
* @param mm park time in minutes
* @param ratePerHour parking rate per hour
* @param freeMinute free of charge for parking less than or equal to n minutes
* @return parking fee
*/
int parkingRate3(int mm, int ratePerHour, int freeMinute) {
int fee = 0;
if (mm > freeMinute) {
int hours = mm / 60;
int minutes = mm % 60;
if (minutes > 10) {
// hours=hours+1;
hours++;
}
fee = hours * ratePerHour;
}
return fee;
}
int main() {
cout << parkingRate3(25, 10, 30) << endl;
cout << parkingRate3(60, 10, 30) << endl;
cout << parkingRate2(65, 20) << endl;
// cout << parkingRate2(75, 30) << endl;
// cout << parkingRate2(170, 10) << endl;
// cout << parkingRate(60) << endl;
// cout << parkingRate(65) << endl;
// cout << parkingRate(75) << endl;
return 0;
}