Switch case c++ là gì



[switch/case trong C/C++]Một lệnh switch trong C/C++ cho một biến được kiểm tra một cách bình đẳng trong danh sách các giá trị. Mỗi giá trị được gọi là một case - trường hợp và biến được chuyển tới được kiểm tra cho mỗi trường hợp switch.

Cú pháp

Cú pháp của lệnh switch trong Ngôn ngữ C/C++ như sau:

switch(bieu_thuc){
    case bieu_thuc_hang  :
       statement(s);
       break; //optional
    case bieu_thuc_hang  :
       statement(s);
       break; //optional
  
    // you can have any number of case statements.
    default : //Optional
       statement(s);
}

Các quy tắc sau được áp dụng tới một lệnh switch:

  • Biểu thức bieu_thuc được sử dụng trong một lệnh switch phải có kiểu là integer hoặc liệt kê, hoặc là một trong các kiểu lớp trong đó lớp có một hàm biến đổi đơn tới một kiểu integer hoặc kiểu liệt kê.

  • Bạn có thể có bất kỳ số lệnh case nào trong một switch. Mỗi case được theo sau bởi giá trị để được so sánh và một dấu hai chấm.

  • bieu_thuc_hang, là biểu thức hằng, cho một case phải cùng kiểu dữ liệu với biến trong switch, và nó phải là hằng số.

  • Khi biến được chuyển tới là cân bằng với một case, lệnh theo sau case đó sẽ thực thi tới khi gặp lệnh break.

  • Khi gặp lệnh break, switch kết thúc, và dòng điều khiển nhảy tới dòng lệnh tiếp theo của lệnh switch đó.

  • Không phải mỗi case cần chứa một lệnh break. Nếu không có lệnh break nào xuất hiện, dòng điều khiển sẽ không tới được case tiếp theo cho tới khi bắt gặp một lệnh break.

  • Một lệnh switch có thể có một case mặc định tùy chọn, mà phải xuất hiện ở cuối cùng của switch. Case mặc định này có thể được sử dụng để thực hiện một nhiệm vụ khi không có case nào true. Trong trường hợp case mặc định này thì không cần lệnh break.

Sơ đồ

Ví dụ

#include <iostream>
using namespace std;
 
int main ()
{
   // Khai bao bien cuc bo:
   char hocluc = 'D';

   switch(hocluc)
   {
   case 'A' :
      cout << "Gioi!" << endl; 
      break;
   case 'B' :
   case 'C' :
      cout << "Kha" << endl;
      break;
   case 'D' :
      cout << "Trung binh" << endl;
      break;
   case 'F' :
      cout << "Phai hoc lai!!" << endl;
      break;
   default :
      cout << "Gia tri khong hop le" << endl;
   }
   cout << "Hoc luc cua ban la " << hocluc << endl;
 
   return 0;
}

Chạy chương trình C/C++ trên sẽ cho kết quả như hình sau:

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


dieu_khien_luong_trong_cplusplus.jsp



Bài viết liên quan

  • 160 bài học ngữ pháp tiếng Anh hay nhất

  • 155 bài học Java tiếng Việt hay nhất

  • 100 bài học Android tiếng Việt hay nhất

  • 247 bài học CSS tiếng Việt hay nhất

  • 197 thẻ HTML cơ bản

  • 297 bài học PHP

  • 101 bài học C++ hay nhất

  • 97 bài tập C++ có giải hay nhất

  • 208 bài học Javascript có giải hay nhất

Lệnh switch-case cũng gần tương tự như if-else mà chúng ta đã được tìm hiểu ở bài trước. 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 thõa điều kiện nào thì đoạn code bên trong điều kiện đó sẽ được thực thi.

  • 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.

Dưới đây là 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.

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

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:

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.

Switch case dùng để làm gì?

Lênh switch case có công dụng giống như lệnh if else đó đều dùng để rẻ nhánh chương trình, ứng với mỗi nhánh sẽ có một điều kiện cụ thể và điều kiện đó phải sử dụng toán tử so sánh bằng, còn đối với lệnh if else thì bạn có thể truyền vào một mệnh đề bất kì và Sử dụng nhiều toán tử khác nhau.

Switch case JS là gì?

Câu lệnh switchcase trong JavaScript dùng để xác định một danh sách các trường hợp và trong mỗi trường hợp sẽ có một đoạn mã, khi giá trị của bạn trùng khớp với trường hợp nào thì đoạn mã của trường hợp đó sẽ được thực thi.

Lệnh continue trong C là gì?

Lệnh continue trong Ngôn ngữ chương trình C làm việc hơi giống với lệnh break. Thay vì bắt buộc kết thúc, nó bắt buộc vòng lặp tiếp theo diễn ra, bỏ qua bất kỳ đoạn code nào ở giữa. Đối với vòng lặp for, lệnh continue thực hiện các bước kiểm tra điều kiện và phần increment của vòng lặp.

Câu lệnh switch case C++ dùng để làm gì?

Mệnh đề switch-case trong C++ Mệnh đề switch-case trong C++ được sử dụng để thực thi 1 hoặc nhiều khối lệnh từ nhiều điều kiện. Nó gần giống với mệnh đề if-else-if trong C++.