Rate this post

Trong C++, switch-case là một cấu trúc điều khiển lựa chọn được sử dụng để chuyển hướng chương trình tùy thuộc vào giá trị của một biến hoặc hằng số.

Các bài viết liên quan

Cú pháp của switch-case như sau:

switch (expression) {
    case value1:
        // code to be executed if expression == value1;
        break;
    case value2:
        // code to be executed if expression == value2;
        break;
    ...
    default:
        // code to be executed if expression doesn't match any case
}


Trong đó:

  • expression là biến hoặc hằng số được sử dụng để so sánh với các giá trị trong các case.
  • value1, value2, … là các giá trị có thể có của expression.
  • break là từ khóa để dừng chương trình sau khi thực thi xong một case.
  • default là từ khóa để chỉ ra những hành động sẽ thực hiện nếu không có case nào khớp với giá trị của expression.

Ví dụ:

int num = 2;
switch (num) {
  case 1:
        cout << "num is 1" << endl; break; 
  case 2: cout << "num is 2" << endl; break; 
  case 3: cout << "num is 3" << endl; break; 
  default: cout << "num is not 1, 2 or 3" << endl; 
}

// Output: num is 2

Trong ví dụ trên, giá trị của biến num là 2, nên case 2 sẽ được thực thi và chương trình sẽ in ra "num is 2". Lưu ý: switch-case chỉ hỗ trợ các kiểu dữ liệu cơ bản như int, char, và một số kiểu dữ liệu khác như enum. Nếu muốn sử dụng các kiểu dữ liệu khác như string hoặc float, cần sử dụng các cấu trúc điều khiển khác như if-else.

vì sao nên sử dụng c++ switch case

C++ switch-case là một cấu trúc điều khiển rất tiện lợi và hiệu quả trong một số trường hợp sau:

  1. Khi có nhiều trường hợp cần được xử lý: Switch-case cho phép bạn xử lý nhiều trường hợp khác nhau cùng một lúc, giúp giảm số lượng mã và dễ dàng quản lý.
  2. Khi cần so sánh với nhiều giá trị của một biến: Switch-case cho phép bạn so sánh giá trị của một biến hoặc hằng số với nhiều giá trị khác nhau, giúp tăng hiệu suất và giảm số lượng mã.
  3. Khi cần chuyển hướng chương trình theo giá trị của một biến: Switch-case cho phép bạn chuyển hướng chương trình theo giá trị của một biến hoặc hằng số, giúp tăng cả sự rõ ràng và dễ quản lý của mã.
  4. Khi cần tách mã ra thành nhiều hàm: Switch-case cho phép bạn chuyển đến một hàm khác để thực hiện một chức năng cụ thể, giúp tách mã ra thành nhiều hàm giúp dễ quản lý và bảo trì.

Lưu ý: switch-case chỉ hỗ trợ các kiểu dữ liệu cơ bản như int, char, và một số kiểu dữ liệu khác như enum. Nếu muốn sử dụng các kiểu dữ liệu khác như string hoặc float, cần sử dụng các cấu trúc điều khiển khác như if-else.

Tuy nhiên, khi sử dụng switch-case, cần chú ý đến việc sắp xếp các case theo thứ tự giảm dần hoặc tăng dần để tăng hiệu suất và chú ý đến việc sử dụng break để tránh lỗi của chương trình.

một số ví dụ c++ switch case

Ví dụ 1: In ra “A” nếu biến score là 1, “B” nếu biến score là 2, và “C” nếu biến score là 3.

int score = 2;
switch (score) {
    case 1:
        cout << "A" << endl;
        break;
    case 2:
        cout << "B" << endl;
        break;
    case 3:
        cout << "C" << endl;
        break;
    default:
        cout << "Invalid score" << endl;
}

// Output: B

Ví dụ 2: In ra “Monday” nếu biến day là 1, “Tuesday” nếu biến day là 2, và “Wednesday” nếu biến day là 3.

int day = 3;
switch (day) {
    case 1:
        cout << "Monday" << endl;
        break;
    case 2:
        cout << "Tuesday" << endl;
        break;
    case 3:
        cout << "Wednesday" << endl;
        break;
    default:
        cout << "Invalid day" << endl;
}

// Output: Wednesday

Ví dụ 3: Chuyển đến hàm print_hello nếu biến command là “hello”, chuyển đến hàm print_goodbye nếu biến command là “goodbye”.

string command = "goodbye";
switch (command) {
    case "hello":
        print_hello();
        break;
    case "goodbye":
        print_goodbye();
        break;
    default:
        cout << "Invalid command" << endl;
}

Trong các ví dụ trên, switch-case được sử dụng để so sánh giá trị của biến và chuyển hướng chương trình tùy thuộc vào giá trị đó.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now