18.คำสั่ if

คำสั่งควบคุม

ในบทก่อนหน้า คุณได้เรียนพื้นฐานของภาษา C++ ไปแล้ว ในบทนี้ คุณจะได้เรียนเกี่ยวกับการควบคุมโปรแกรมโดยการใช้คำสั่งควบคุม อย่างเช่น if, if else, switch, for, while, do while คำสั่งเหล่านี้ใช้เพื่อควบคุมโปรแกรมเพื่อให้ไปในทิศทางที่เราต้องการ

คำสั่ง if, if else, และ switch ถูกใช้เพื่อควบคุมโปรแกรมโดยมีเงื่อนไขเป็น Expression กำหนดเงื่อนไข คำสั่งวนซ้ำ เช่น for, while, และ do while ถูกใช้เพื่อทำซ้ำส่วนของโค้ดตามเงื่อนไขของ Expression จนกว่าเงื่อนไขจะเป็นเท็จ

คำสั่ง if



เงื่อนไขทางเลือก ที่เขียนอยู่ระหว่างเครื่องหมาย ( และ ) เป็นนิพจน์ใด ๆ ที่สามารถประเมินค่าได้


    ในกรณีที่ เงื่อนไขทางเลือก มีค่าเป็น จริง และไม่เท่ากับ 0
  • จะประมวลผลคำสั่ง
    ในกรณีที่ เงื่อนไขทางเลือก มีค่าเป็น เท็จ และเท่ากับ 0
  • จะไม่ประมวลผลคำสั่ง


ตัวอย่าง  โปรแกรมทายตัวเลข 1
Picture
Picture
จากการรันครั้งที่ 1 ตัวแปร y (ในบรรทัดที่ 7) รับค่าจากแป้นพิมพ์ เท่ากับ 18 (ในบรรทัดที่ 10) นิพจน์เปรียบเทียบ y == TARGET (ในบรรทัดที่ 12) จะมีค่าเป็นเท็จ แล้วฟังก์ชัน printf( ) (ในบรรทัดที่ 13) จะไม่ได้ถูกประมวลผล แต่ไปประมวลผลต่อในคำสั่งถัดไป (ในบรรทัดที่ 14) และจนจบโปรแกรม
          จากการรันครั้งที่ 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;
}