Switch case trong C | luyện code 2023✅

Đánh giá bài này

Lệnh switch case là lệnh rẽ nhánh cũng gần tương tự như if-else mà chúng ta đã được biết. Nghĩa là nó có nhiều điều kiện, chương trình chúng ta duyệt từng điều khiện từ trên xuống dưới, nếu thoả mãn điều kiện nào thì đoạn code bên trong điều kiện đó sẽ được thực thi. Hãy tìm hiểu kỹ cú pháp và các ví dụ hướng dẫn sử dụng lệnh này của Tekmonk ở dưới nhé.

  • switch-case là một cấu trúc điều khiển và rẽ nhánh hoàn toàn có thể thay thế được if-else.
  • Việc sử dụng switch-case sẽ giúp code của chúng ta dễ viết và dễ đọc hơn.
  • Sử dụng switch-case sẽ cho hiệu năng tốt hơn so với sử dụng if-else.

Cú pháp của lệnh switch case

switch (expression) {
    case constant1:
        // statements 1
        break;
    case constant2:
        // statements 2
        break;
        .
        .
        .
    default:
        // default statements
}
  • switch sẽ so sánh giá trị của expression với mỗi case (trường hợp) bên trong nó.
  • Từ khóa break được sử dụng để kết thúc một case trong câu lệnh switch.
  • Case default sẽ được thực hiện nếu không có case nào khớp giá trị với expression. Trong khối lệnh switch có thể có một case default hoặc không có.
  • Nếu có một case nào đó khớp giá trị với expression, các khối lệnh tương ứng của case đó sẽ được thực hiện cho tới khi gặp từ khoá break.

Lưu ý:

  • Các giá trị của mỗi case phải cùng kiểu dữ liệu với giá trị của expression.
  • expression phải bắt buộc là giá trị hằng, có thể là biểu thức nhưng kết quả cần là hằng số.
  • Giá trị của các case là một hằng số và các giá trị của các case phải khác nhau.
  • Số lượng các case là không giới hạn nhưng chỉ có thể có duy nhất một default.
  • Từ khóa break có thể sử dụng hoặc không. Nếu không được sử dụng thì chương trình sẽ không kết thúc khi đã thực hiện hết khối lệnh của case đó. Thay vào đó, nó sẽ thực hiện tiếp các khối lệnh của case tiếp theo cho đến khi gặp từ khoá break hoặc dấu } cuối cùng của cấu trúc switch-case.
  • Cho phép switch-case lồng nhau, tuy nhiên không khuyến khích vì nó làm cho chương trình chúng ta phức tạp và khó đọc hơn thôi.
See also  Các Vòng Lặp While, For Trong C, Python 2023

Dưới đây là sơ đồ khối mô tả hoạt động của lệnh switch-case

Switch case trong C | luyện code 2023

Ví dụ minh họa:

#include <stdio.h>

int main() {

    int day;

    printf("Enter the day: ");
    scanf("%d", &day);

    switch (day) {
        case 2:
            printf("Monday");
            break;
        case 3:
            printf("Tuesday");
            break;
        case 4:
            printf("Wednesday");
            break;
        case 5:
            printf("Thursday");
            break;
        case 6:
            printf("Friday");
            break;
        case 7:
            printf("Saturday");
            break;
        case 8:
            printf("Sunday");
            break;
        default:
            printf("Only enter 2 -> 8.");
    }
}

Và đây là kết quả sau khi chạy chương trình:

Enter the day: 6
Friday

Nếu nhập một giá trị không có trong các case, case default sẽ được chạy:

Enter the day: 12
Only enter 2 -> 8.

Cùng xem thêm một ví dụ khác sử dụng kiểu char

#include <stdio.h>

int main () {

    char grade;

    printf("Enter grade: ");
    scanf("%c", &grade);

    switch(grade) {
        case 'A':
            printf("Excellent!\n");
            break;
        case 'B':
        case 'C':
            printf("Well done.\n");
            break;
        case 'D':
            printf("You passed.\n");
            break;
        case 'F':
            printf("Better try again.\n");
            break;
        default:
            printf("Invalid grade.\n");
    }

    printf("Your grade is %c\n", grade);
}

Kết quả:

Enter grade: B
Well done.
Your grade is B

Ở ví dụ này case B chúng ta không dùng break; – vì vậy khi chọn B (không có break; chặn lại) nó sẽ chạy xuống thực hiện code trong case C và in ra Well done.. Có nghĩa là khi chọn B hay C đều cho ra một kết quả giống nhau.

Điều gì sẽ xảy ra nếu như chúng ta không có từ khóa break ở mỗi case

#include &lt;stdio.h>
<strong>int</strong> main<strong>()</strong>
{
    <strong>int</strong> i=2;
    <strong>switch</strong> (i)
    {
       <strong>case</strong> 1:
          printf("Case1 ");
       <strong>case</strong> 2:
          printf("Case2 ");
       <strong>case</strong> 3:
          printf("Case3 ");
       <strong>case</strong> 4:
          printf("Case4 ");
       <strong>default</strong>:
          printf("Default ");
    }
   <strong>return</strong> 0;
}

Kết quả: 
Case2 Case3 Case4 Default

Chúng ta thấy rằng nếu không có từ khóa break ở cuối mỗi case thì chương trình sẽ chạy tiếp xuống các case ngay bên dưới dẫn đến chương trình có thể thực hiện sai mong muốn của người code.

See also  Cách Tìm Phần Tử Lớn Nhất Trong Mảng C++ hay nhất 2023✅

Như vậy, các bạn đã hiểu rất rõ về cú pháp lệnh switch case và các trường hợp sử dụng của nó, chúc các bạn học code thành công.

Leave a comment