Thứ Hai, 29 tháng 4, 2024

19. Switch Case trong C ++

Switch case sử dụng tương đối giống if và else if, nó cũng giúp bạn có thể kiểm tra nhiều điều kiện để thực hiện các rẽ nhánh khác nhau.


Cú pháp :

switch(value){
    case c1:
        //code
        break;
    case c2:
        //code
        break;
    ....
    case cn:
        //code
        break;
    default:
        //code
}


Cách hoạt động của switch case là so sánh lần lượt giá trị của value bên trong switch với giá trị của các biến trong các case là c1, c2, ... cn. Nếu giá trị của value bằng giá trị của case nào thì khối lệnh bên trong case đó sẽ được thực hiện.

Nếu giá trị của value không bằng bất cứ giá trị nào trong các case thì khối lệnh trong default sẽ được thực hiện, default trong switch case tương tự như else trong if else ở phần trước.

Từ khóa break và default là tùy chọn và sẽ được thảo luận sau.

Chúng ta vẫn sử dụng IDE Online. Thêm một biến vào chương trình tào lao như sau:

int ngayThu = 5;

Sau đó ta sử dụng switch case để biêt ngày thứ 5 trong tuần là ngày nào.

switch (ngayThu) {
  case 1:
    cout << "Thu Hai";
    break;
  case 2:
    cout << "Thu Ba";
    break;
  case 3:
    cout << "Thu Tu";
    break;
  case 4:
    cout << "Thu Nam";
    break;
  case 5:
    cout << "Thu Sau";
    break;
  case 6:
    cout << "Thu Bay";
    break;
  case 7:
    cout << "Chu Nhat";
    break;
}



Đây là code của chương trình

#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;
    int ngayThu = 5;

    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;
    }
     
    switch (ngayThu) {
  case 1:
    cout << "Thu Hai";
    break;
  case 2:
    cout << "Thu Ba";
    break;
  case 3:
    cout << "Thu Tu";
    break;
  case 4:
    cout << "Thu Nam";
    break;
  case 5:
    cout << "Thu Sau";
    break;
  case 6:
    cout << "Thu Bay";
    break;
  case 7:
    cout << "Chu Nhat";
    break;
}

 

}


Bấm Run để chạy chương trình tào lao:



Từ khóa Break

Khi C++ gặp từ khóa break, nó sẽ thoát ra khỏi khối switch.

Điều này sẽ dừng việc thực thi thêm mã và kiểm tra trường hợp bên trong khối.

Nói chung tinh thần là khi tìm thấy kết quả phù hợp và công việc đã hoàn thành thì đã đến lúc "nghỉ ngơi". Không cần phải thử nghiệm thêm.

Việc "nghỉ ngơi" có thể tiết kiệm rất nhiều thời gian thực thi vì nó "bỏ qua" việc thực thi tất cả phần còn lại của mã trong khối chuyển đổi.

Từ khóa Default

Từ khóa mặc định chỉ định một số mã để chạy nếu không có trường hợp nào khớp


Phần tiếp theo

Phần trước

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

Đăng nhận xét