[Bài 16] Cấu trúc rẽ nhánh: Switch Case

[Bài 16] Cấu trúc rẽ nhánh: Switch Case

Trong bài học này chúng ta học thêm một cấu trúc rẽ nhánh nữa có phần ngắn gọn hơn so với if và else if đó là switch case.

Mục lục

1. Switch Case

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à sẽ 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 bạn đã học ở bài trước. 

Ví dụ 1: 

#include <iostream>
using namespace std;

int main() {
int n = 3;
switch(n) {
case 1:
    cout << "ONE\n";
    break;
case 2:
    cout << "TWO\n";
    break;
case 3:
    cout << "THREE\n";
    break;
case 4:
    cout << "FOUR\n";
    break;
//Neu n khong phai la 1, 2, 3, 4
default:
    cout << "DEFAULT\n";

}

}

 

Output :

THREE

Chú ý : Các câu lệnh bên trong case sẽ được kết thúc bởi câu lệnh break. Nếu không có câu lệnh break thì khi code trong nhánh nào được thực hiện, switch case sẽ không kết thúc ngay như else if mà sẽ thực hiện luôn các câu lệnh trong các rẽ nhánh bên dưới. 

Ví dụ 2 :  

#include <iostream>
using namespace std;

int main() {
int n = 2;
switch(n) {
case 1:
    cout << "ONE\n";
case 2:
    cout << "TWO\n";
case 3:
    cout << "THREE\n";
case 4:
    cout << "FOUR\n";
//Neu n khong phai la 1, 2, 3, 4
default:
    cout << "DEFAULT\n";

}

}

 

Output :

TWO THREE FOUR DEFAULT 

 

Ví dụ 3 : Nhập vào toán tử +, -, *, / và in ra kết quả tương ứng với 2 số a, b

#include <iostream>
using namespace std;

int main() {
int a = 20, b = 5;
char op; cin >> op;
switch(op) {
case '+':
    cout << a + b << endl;
    break;
case '-':
    cout << a - b << endl;
    break;
case '*':
    cout << a * b << endl;
    break;
case '/':
    cout << a / b << endl;
    break;
default:
    cout << "INVALID INPUT" << endl;

}

 

Ví dụ 4 : Nhập tháng và năm in ra số ngày của tháng, chú ý tháng 2 của năm nhuận có 29 ngày

#include <iostream>
using namespace std;

int main() {
int m, y;
cout << "Nhap thang, nam : ";
cin >> m >> y;
switch(m) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10:
case 12:
    cout << 31 << endl;
    break;
case 4 :
case 6 :
case 9 :
case 11:
    cout << 30 << endl;
    break;
case 2:
    if ((y % 400 == 0) && (y % 4 == 0 && y % 100 != 0)) {
        cout << 29 << endl;
    } else {
        cout << 28 << endl;
    }
    break;
default:
    cout << "Du lieu khong hop le !\n";

}

}

 

Mục lục

Lập trình C++ cơ bản