Câu lệnh Switch hoạt động như thế nào?

Trong hướng dẫn này, bạn sẽ học cách tạo câu lệnh switch trong lập trình C với sự trợ giúp của một ví dụ.

Câu lệnh switch cho phép chúng tôi thực thi một khối mã trong số nhiều lựa chọn thay thế.

Bạn có thể làm điều tương tự với if...else..ifcái thang. Tuy nhiên, cú pháp của switchcâu lệnh dễ đọc và dễ viết hơn nhiều.

Cú pháp của switch … case

switch (expression)
​{
    case constant1:
      // statements
      break;

    case constant2:
      // statements
      break;
    .
    .
    .
    default:
      // default statements
}

Câu lệnh switch hoạt động như thế nào?

Các biểu hiện được đánh giá một lần và so sánh với các giá trị của mỗi trường hợp nhãn.

  • If there is a match, the corresponding statements after the matching label are executed. For example, if the value of the expression is equal to constant2, statements after case constant2: are executed until break is encountered.
  • If there is no match, the default statements are executed.

Nếu chúng ta không sử dụng break, tất cả các câu lệnh sau khi nhãn phù hợp sẽ được thực thi.

Nhân tiện, defaultmệnh đề bên trong switchcâu lệnh là tùy chọn.

chuyển đổi Lưu đồ câu lệnh

chuyển đổi Lưu đồ câu lệnh

Ví dụ: Máy tính đơn giản

// Program to create a simple calculator
#include <stdio.h>

int main() {
    char operator;
    double n1, n2;

    printf("Enter an operator (+, -, *, /): ");
    scanf("%c", &operator);
    printf("Enter two operands: ");
    scanf("%lf %lf",&n1, &n2);

    switch(operator)
    {
        case '+':
            printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2);
            break;

        case '-':
            printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2);
            break;

        case '*':
            printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2);
            break;

        case '/':
            printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2);
            break;

        // operator doesn't match any case constant +, -, *, /
        default:
            printf("Error! operator is not correct");
    }

    return 0;
}

Đầu ra

Enter an operator (+, -, *,): -
Enter two operands: 32.5
12.4
32.5 - 12.4 = 20.1

Các – nhà điều hành nhập vào bởi người sử dụng được lưu trữ trong các nhà khai thác khác nhau. Và, hai toán hạng 32,5 và 12,4 lần lượt được lưu trong các biến n1 và n2 .

Vì nhà điều hành là -, quyền điều khiển của chương trình chuyển đến

printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);

Cuối cùng, câu lệnh break kết thúc switchcâu lệnh.









Gõ tìm kiếm nhanh...