Thứ Hai, 29 tháng 4, 2024

18. If và Else If trong C++

 Câu lệnh else if


Chúng ta sử dụng câu lệnh else if để chỉ định điều kiện mới nếu điều kiện đầu tiên sai, nói cách khác else if giúp chúng ta có thể kiểm tra nhiều điều kiện khác nhau thay vì một điều kiện duy nhất.

Giả sử trong phần trước, nếu chúng ta thêm các điều kiện như từ 13 giờ đến 14 giờ là giờ họp, từ 14 giờ đến 15 giờ là giờ vận chuyển hàng hóa tới các cửa hàng...thì chúng ta sẽ phải sử dụng nhiều if else lồng nhau dẫn tới code trở nên dài dòng và phức tạp. 

If và else if giúp bạn có thể kiểm tra nhiều điều kiện và nó chỉ thực hiện duy nhất 1 khối lệnh trong các rẽ nhánh đó.

Cú pháp :

if(điều_kiện_1){
    //code 1
}
else if(điều_kiện_2){
    //code 2
}
else if(điều_kiện_3){
    //code 3
}
...
else if(điều_kiện_n){
    //code n
}
else{
    //Code else
}

Lưu ý :

  •     Chúng ta có thể kiểm tra bao nhiêu điều kiện tùy ý
  •     Khối lệnh else có thể có hoặc không
  •     Khi rẽ nhánh nào được thực hiện, cấu trúc sẽ kết thúc

 

Chúng ta sử dụng IDE Online và vẫn giữ vững lập trường kiên trì với chương trình tào lao!

Chúng ta sẽ thêm việc bắt đầu làm việc lúc 8 giờ sáng. Khung giờ cần giải quyết sẽ như sau:

Trước 8g sáng: Ở nhà

8g - 12g: Làm việc

12g - 13g: Ăn trưa

13g - 14g: Họp công ty

14g - 15g: Chuyển hàng tới các cửa hàng

15g - 17g: Làm việc

Sau 17g: Về nhà


Đây là đoạn code if else lồng nhau của phần trước. 


if (time < 18) {
        if (time >=12 && time <= 13){
            cout << "Gio An trua.";
        }else{
            cout << "Lam viec.";
        }
    } else {
        cout << "Ve nha.";
    }


Chúng ta sẽ sử dụng else if để sửa lại

if(time < 8){
    cout << "O nha." << endl;;
}
else if(time >= 8 && time < 12 ){
    cout << "Lam viec." << endl;
}
else if(time >= 12 && time < 13){
    cout << "Gio An trua." << endl;
}
else if(time >= 13 && time < 14){
    cout << "Hop Cong ty." << endl;
}
else if(time >= 14 && time < 15){
    cout << "Chuyen hang toi cac cua hang." << endl;
}
else if(time >= 15 && time < 17){
    cout << "Lam Viec." << endl;
}
else{
     cout << "Ve nha." << endl;
}

 

Chương trình sẽ như sau, bạn thay đổi giá trị biến time để test

#include <iostream>
#include <iomanip>

using namespace std;
//typedef long long ll;
//#define ll long long
using ll = long long;
#define greet cout << "Dat Viet Lap Trinh" << endl;
typedef int arr[3];
 

int main(){
    greet;
    int a = 123;
    int soTien;
    int soNam;
    int  tongSoTien;
    int x = 15 < 25 ? 100 : 200;
    int diBien1= (10 < 20) && (20 >= 20);
    int diBien2= (10 > 20) || (20 < 10);
    long long b = 1234567890;
    float c = 2.3456;
    double d = 2.3456789;
    char kitu= 'A';
    char Ten;
    bool check = true;
    a +=10;
    ll g = 1234567890;
    arr array1{ 1 , 2, 3};
    int so1 = 20;
    int so2 = 18;
    int so3 = 0;
    int time = 15;
    cout << "Gia tri cua a : " << a << endl;
    cout << "Gia tri cua b : " << b << endl;
    cout << "Gia tri cua c : " << c << endl;
    cout << "Gia tri cua d : " << d << endl;
    cout << "Gia tri cua kitu : " << kitu << endl;
    cout << "Gia tri cua check : " << check << endl;
    cout << "Gia tri cua check : " << boolalpha << check << endl;
    cout << "Gia tri cua c : " << fixed << setprecision(2) << c << endl;
    cout << "Gia tri cua d : " << fixed << setprecision(4) << d << endl;
    cout << setw(12) << setfill('0') << a << endl;
    cout << setw(12) << setfill(' ') << "Dat Viet" << endl;
    cout << "Nhap tên của bạn, chỉ một chữ A,B,C :  "<< endl;
    cin >> Ten;
    cout << "Ten ban la : " << Ten << endl;
    cout << "Nhap so tien gui hang thang :  "<< endl;
    cin >> soTien;
    cout << "Nhap so nam tiet kiem :  "<< endl;
    cin >> soNam;
    tongSoTien = (soTien * 12) * soNam;
    cout << "Xin chao, " << Ten << ". Sau " << soNam << " nam tich luy. Ban da tiet kiem dươc tong so tien là: " << tongSoTien << endl;
    cout << "Gia tri cua x : " << x << endl;
    cout << "Gia tri cua diBien1 : " << diBien1 << ". Gia tri cua diBien2 : " << diBien2 << endl;
    cout << "Gia tri cua diBien1 : " << boolalpha << diBien1 << ". Gia tri cua diBien2 : " << boolalpha << diBien2 << endl;
    cout << (100 > 50) << endl;
    cout << (20 <= 30) << endl;
    cout << (80 >= 100) << endl;
    cout << "Gia tri cua g : " << g << endl;
    greet;
    if (20 > 18) {
    cout << "20 lon hon 18"<<endl;
    }
    if (so1 > so2) {
    cout << "so1 lon hon so2"<< endl;
    }
 
    if(so2){
        cout << so2 << " khac 0" << endl;
    }
    if(so3){
        cout << so3 << " khac 0" << endl;
    }
    
    if(time < 8){
    cout << "O nha." << endl;;
    }
    else if(time >= 8 && time < 12 ){
        cout << "Lam viec." << endl;
    }
    else if(time >= 12 && time < 13){
        cout << "Gio An trua." << endl;
    }
    else if(time >= 13 && time < 14){
        cout << "Hop Cong ty." << endl;
    }
    else if(time >= 14 && time < 15){
        cout << "Chuyen hang toi cac cua hang." << endl;
    }
    else if(time >= 15 && time < 17){
        cout << "Lam Viec." << endl;
    }
    else{
        cout << "Ve nha." << endl;
    }


}

Bấm Run để chạy chương trình

If và Else trong lập trình C++

 

Chúng ta thấy có hai else if tương tự nhau là Làm việc.

Nếu muốn, chúng ta có thể ghép cả hai với điều kiện hoặc là ||, đây là code của chương trình sau khi thay đổi:

#include <iostream>
#include <iomanip>

using namespace std;
//typedef long long ll;
//#define ll long long
using ll = long long;
#define greet cout << "Dat Viet Lap Trinh" << endl;
typedef int arr[3];
 

int main(){
    greet;
    int a = 123;
    int soTien;
    int soNam;
    int  tongSoTien;
    int x = 15 < 25 ? 100 : 200;
    int diBien1= (10 < 20) && (20 >= 20);
    int diBien2= (10 > 20) || (20 < 10);
    long long b = 1234567890;
    float c = 2.3456;
    double d = 2.3456789;
    char kitu= 'A';
    char Ten;
    bool check = true;
    a +=10;
    ll g = 1234567890;
    arr array1{ 1 , 2, 3};
    int so1 = 20;
    int so2 = 18;
    int so3 = 0;
    int time = 15;
    cout << "Gia tri cua a : " << a << endl;
    cout << "Gia tri cua b : " << b << endl;
    cout << "Gia tri cua c : " << c << endl;
    cout << "Gia tri cua d : " << d << endl;
    cout << "Gia tri cua kitu : " << kitu << endl;
    cout << "Gia tri cua check : " << check << endl;
    cout << "Gia tri cua check : " << boolalpha << check << endl;
    cout << "Gia tri cua c : " << fixed << setprecision(2) << c << endl;
    cout << "Gia tri cua d : " << fixed << setprecision(4) << d << endl;
    cout << setw(12) << setfill('0') << a << endl;
    cout << setw(12) << setfill(' ') << "Dat Viet" << endl;
    cout << "Nhap tên của bạn, chỉ một chữ A,B,C :  "<< endl;
    cin >> Ten;
    cout << "Ten ban la : " << Ten << endl;
    cout << "Nhap so tien gui hang thang :  "<< endl;
    cin >> soTien;
    cout << "Nhap so nam tiet kiem :  "<< endl;
    cin >> soNam;
    tongSoTien = (soTien * 12) * soNam;
    cout << "Xin chao, " << Ten << ". Sau " << soNam << " nam tich luy. Ban da tiet kiem dươc tong so tien là: " << tongSoTien << endl;
    cout << "Gia tri cua x : " << x << endl;
    cout << "Gia tri cua diBien1 : " << diBien1 << ". Gia tri cua diBien2 : " << diBien2 << endl;
    cout << "Gia tri cua diBien1 : " << boolalpha << diBien1 << ". Gia tri cua diBien2 : " << boolalpha << diBien2 << endl;
    cout << (100 > 50) << endl;
    cout << (20 <= 30) << endl;
    cout << (80 >= 100) << endl;
    cout << "Gia tri cua g : " << g << endl;
    greet;
    if (20 > 18) {
    cout << "20 lon hon 18"<<endl;
    }
    if (so1 > so2) {
    cout << "so1 lon hon so2"<< endl;
    }
 
    if(so2){
        cout << so2 << " khac 0" << endl;
    }
    if(so3){
        cout << so3 << " khac 0" << endl;
    }
    
    if(time < 8){
    cout << "O nha." << endl;;
    }
    else if((time >= 8 && time < 12) || (time >= 15 && time < 17)){
        cout << "Lam viec." << endl;
    }

    else if(time >= 12 && time < 13){
        cout << "Gio An trua." << endl;
    }
    else if(time >= 13 && time < 14){
        cout << "Hop Cong ty." << endl;
    }
    else if(time >= 14 && time < 15){
        cout << "Chuyen hang toi cac cua hang." << endl;
    }
    else{
        cout << "Ve nha." << endl;
    }

}

 

Khi chạy thử, chúng ta thấy kết quả sẽ như cũ


 

Phần tiếp theo

Phần trước

Không có nhận xét nào:

Đăng nhận xét