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

Giới thiệu về C++ Switch Case

C++ Switch Case là một cấu trúc điều khiển trong ngôn ngữ lập trình C++, cho phép thực hiện lựa chọn điều kiện dựa trên giá trị của biến hoặc biểu thức. Switch Case rất hữu ích khi ta muốn thực hiện các hành động khác nhau dựa trên giá trị của một biến hoặc biểu thức cụ thể.

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
}

Xem thêm Chạy các Test Case với Regex

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.

Cách hoạt động của Switch Case là so sánh giá trị của biến điều kiện với từng giá trị trong các trường hợp (cases) và thực thi khối mã tương ứng khi tìm thấy trường hợp phù hợp. Nếu không có trường hợp nào phù hợp, khối mã trong trường hợp mặc định (default) sẽ được thực thi (nếu có).

Switch Case trong C++ có thể sử dụng các kiểu dữ liệu nguyên thủy như int, char, và các kiểu enum. Cũng có thể sử dụng một số biểu thức để xác định giá trị của biến điều kiện.

Switch Case trong C++ cung cấp khả năng thực hiện nhiều lựa chọn điều kiện khác nhau một cách dễ dàng và gọn gàng. Nó giúp tăng tính dễ đọc và dễ bảo trì của mã nguồn và thường được sử dụng trong các trường hợp có nhiều lựa chọn và các hành động khác nhau phụ thuộc vào giá trị của biến hoặc biểu thức.

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.

Xem thêm Switch là gì?

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.

Xem thêm Exclude / Include các test case trong TestNG

So sánh Switch Case với các cấu trúc điều kiện khác trong C++

Trong ngôn ngữ lập trình C++, Switch Case là một cấu trúc điều khiển mạnh mẽ và tiện lợi để thực hiện lựa chọn điều kiện dựa trên giá trị của biến hoặc biểu thức. Dưới đây là một số so sánh giữa Switch Case và các cấu trúc điều kiện khác trong C++:

  1. If-else: If-else là cấu trúc điều khiển phổ biến khác trong C++. Điểm khác biệt chính giữa Switch Case và If-else là trong Switch Case, ta so sánh giá trị của biến hoặc biểu thức với nhiều trường hợp (cases), trong khi If-else chỉ thực hiện lựa chọn dựa trên một điều kiện duy nhất. Nếu số lượng trường hợp lớn và liên quan đến cùng một biến, Switch Case thường được sử dụng để tạo mã nguồn dễ đọc và dễ bảo trì hơn.
  2. Nested If-else: Trường hợp phức tạp hơn, khi ta cần thực hiện nhiều lựa chọn điều kiện lồng nhau, Nested If-else có thể được sử dụng. Tuy nhiên, việc sử dụng nhiều câu lệnh if-else lồng nhau có thể làm mã nguồn trở nên phức tạp và khó đọc. Trong trường hợp này, Switch Case có thể giúp giảm sự lồng nhau và tạo mã nguồn rõ ràng hơn.
  3. Ternary Operator: Ternary Operator là một cấu trúc điều khiển linh hoạt cho phép ta thực hiện một lựa chọn dựa trên một điều kiện duy nhất. Tuy nhiên, Ternary Operator thích hợp cho các lựa chọn đơn giản và không thể thay thế Switch Case trong các trường hợp có nhiều lựa chọn phức tạp.
  4. Các cấu trúc điều khiển khác như While, For: Các cấu trúc điều khiển While và For được sử dụng để lặp lại một khối mã theo một điều kiện. Chúng không có chức năng trực tiếp để thực hiện lựa chọn điều kiện dựa trên giá trị của biến như Switch Case. Tuy nhiên, ta có thể sử dụng các câu lệnh điều kiện bên trong các vòng lặp này để thực hiện lựa chọn tương tự như Switch Case.

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ị đó.

Xem thêm break trong c++

Break trong C++

Trong C++, từ khóa “break” được sử dụng để thoát khỏi một vòng lặp hoặc một câu lệnh switch case. Khi một câu lệnh break được thực thi trong một vòng lặp, vòng lặp đó sẽ bị ngắt và điều khiển sẽ được chuyển đến dòng tiếp theo của lệnh sau vòng lặp. Tương tự, khi một câu lệnh break được thực thi trong một câu lệnh switch case, thì switch case đó sẽ bị ngắt và điều khiển sẽ được chuyển đến dòng tiếp theo của lệnh sau switch case đó.

Ví dụ:

for (int i = 1; i <= 10; i++) {
  if (i == 5) {
    break; // thoát khỏi vòng lặp khi i = 5
  }
  cout << i << endl;
}

Trong ví dụ này, vòng lặp for sẽ được thực hiện từ i=1 đến i=10. Tuy nhiên, khi giá trị của i đạt đến 5, điều kiện trong câu lệnh if sẽ được thỏa mãn và câu lệnh break sẽ được thực thi. Kết quả là, vòng lặp sẽ bị ngắt tại i=5 và chỉ hiển thị các giá trị i từ 1 đến 4 trên màn hình.

Tương tự, câu lệnh break cũng có thể được sử dụng để thoát khỏi một câu lệnh switch case. Ví dụ:

int day = 4;
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;
    break; // thoát khỏi câu lệnh switch case
}

Trong ví dụ này, câu lệnh switch case được sử dụng để hiển thị tên của một ngày trong tuần dựa trên giá trị của biến day. Khi giá trị của biến day không phù hợp với bất kỳ trường hợp nào, điều kiện trong câu lệnh default sẽ được thực thi và câu lệnh break sẽ được sử dụng để thoát khỏi câu lệnh switch case.

Default trong c++

Trong C++, từ khóa “default” được sử dụng trong cấu trúc switch case để xử lý các trường hợp không tương ứng với bất kỳ một trường hợp nào khác. Nếu giá trị của biểu thức trong câu lệnh switch case không trùng với bất kỳ một giá trị nào trong các trường hợp được khai báo, thì các câu lệnh trong khối default sẽ được thực thi.

Ví dụ:

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

Trong ví dụ này, nếu giá trị của biến day không phù hợp với bất kỳ một giá trị nào trong các trường hợp được khai báo, thì câu lệnh trong khối default sẽ được thực thi và chương trình sẽ in ra màn hình chuỗi “Invalid day”.

Xem thêm endl trong c++

Tổng kết về C++ Switch Case

Tổng kết về C++ Switch Case như sau:

  • C++ Switch Case là một cấu trúc điều khiển mạnh mẽ và tiện lợi để thực hiện lựa chọn điều kiện dựa trên giá trị của biến hoặc biểu thức.
  • Nó cho phép ta so sánh giá trị của biến hoặc biểu thức với nhiều trường hợp (cases) và thực hiện một khối mã tương ứng với trường hợp đó.
  • Cú pháp của Switch Case gồm từ khóa “switch” kết hợp với biểu thức so sánh và các trường hợp (cases) được định nghĩa bằng từ khóa “case”.
  • Mỗi trường hợp (case) có thể chứa một khối mã cần được thực hiện nếu giá trị của biến hoặc biểu thức trùng khớp với trường hợp đó.
  • Ta có thể sử dụng trường hợp mặc định (default case) để xử lý khi không có trường hợp nào trùng khớp.
  • Switch Case thường được sử dụng khi ta có một số lượng lớn các trường hợp và chúng liên quan đến cùng một biến, giúp tạo mã nguồn dễ đọc và dễ bảo trì hơn so với việc sử dụng nhiều câu lệnh if-else lồng nhau.
  • Tuy nhiên, Switch Case không thể thay thế hoàn toàn các cấu trúc điều kiện khác trong C++ như if-else, nested if-else hoặc ternary operator, tùy thuộc vào yêu cầu và logic của chương trình.

Tóm lại, C++ Switch Case là một công cụ mạnh mẽ để thực hiện lựa chọn điều kiện dựa trên giá trị của biến hoặc biểu thức, giúp tạo mã nguồn dễ đọc và dễ bảo trì trong lập trình C++.

Xem thêm cout trong c++

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