LATEST

Câu lệnh Switch...Case trong C / C++

Trong bài viết này, codehow sẽ giới thiệu đến các bạn câu lệnh Switch...Case trong C / C++. Đây cũng là loại câu lệnh điều khiển rẽ nhánh tương tự như câu lệnh if...else mà bài trước mình đã giới thiệu.

Tuy nhiên, nếu có nhiều điều kiện thì mình khuyến khích sử dụng switch..case hơn là if...else. Vì sao lại như vậy thì các bạn cùng mình tìm hiểu trong bài này nhé !!!

Cấu trúc câu lệnh Switch...Case trong C / C++

Câu lệnh Switch...Case trong C / C++ là một câu lệnh bậc thang thay thế cho if-else-if cho phép chúng ta thực nhiều phép toán khác nhau.

Với câu lệnh Switch...Case chúng ta có thể xác định các câu lệnh khác nhau trong nhiều trường hợp khác nhau của cùng một biến duy nhất.

Hãy cùng xem cấu trúc của câu lệnh Switch...Case trong C / C++ nhé.

switch(expression) {
   case constant-expression:
      statement(s);
      break; //optional
   case constant-expression:
      statement(s);
      break; //optional
   
   default : //Optional
      statement(s);
}

Trong đó:

  • expression: Là giá trị đầu vào, được dùng để so sánh với các giá trị contant-expression.
  • contant-expression: Là điều kiện để so sánh với expression được truyền vào, nếu nó thõa điều kiện thì câu lệnh trong case này sẽ được thực hiện.
  • break: Được sử dụng để thoát khỏi câu lệnh Switch...Case.
  • default: Khi giá trị express không thõa điều kiện contant-express nào cả thì các câu lệnh bên trong default sẽ được thực hiện.

Ví dụ: Mình muốn kiểm tra một số được nhập vào bỏi người dùng là số chẵn hay số lẻ. Ở đay mình sẽ viết bằng ngôn ngữ C++, ngôn ngữ C cũng tương tự nhé.

#include <iostream>
using namespace std;
 
int main()
{
    int number;
    cout<<"Nhap vao so can kiem tra: ";
    cin>>number;
    switch (number % 2){
        case 0:
            cout <<number<< " La so chan";
            break;
        case 1:
            cout <<number<< " La so le";
            break;
    }

    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Kết quả:

bai10 02 png

Để hiểu rõ hơn về Switch...Case trong C / C++ các bạn hãy xem lưu đồ hoạt động của nó dưới đây.

bai10 01 png

Các lưu ý khi sử dụng Switch...Case trong C / C++

Khi sử dụng câu lệnh Switch...Case trong C / C++, chúng ta cần lưu ý tuân thủ theo một số quy tắt dưới đây. Có một vài lưu ý mình khuyến khích các bạn nên sử dụng, bởi nó giúp chúng ta lập trình nhanh hơn, gọn gàn và sạch sẽ hơn.

  1. Kiểu dữ liệu của giá trị expression và contant-expression phải cùng kiểu. Giá trị của cả hai phải là giá trị thực, ví dụ như các số 1, 2, 3 hoặc các ký tự như 'A', 'B', ... .
  2. Các contant-expression không được phép trùng nhau, các trường hợp khác nhau sẽ có một contant-expression khác nhau.
  3. Câu lệnh Switch...Case có thể lồng nhau, tuy nhiên mình không khuyến khích sử dụng bởi nó làm rối hơn khi lập trình.
  4. Trong Switch...Case chúng ta nên sử dụng default ở cuối cùng, như vậy sẽ biết được đó là điều kiện cuối cùng của Switch...Case. Tuy nhiên, chúng ta có thể không sử dụng default và trong default thì không cần sử dụng break nữa vì đây là điều kiện cuối cùng rồi.
  5. Lệnh break được sử dụng để thoát khỏi câu lệnh Switch...Casem, tuy nhiên nó có hai trường hợp xảy ra như sau.
  • Trong Switch...Case không sử dụng break: Chương trình sẽ thực thi từng case từ trên xuống dưới, nếu nó thỏa điều kiện 1 thì các câu lệnh bên trong case 1 được thực hiện, tiếp tục xét điều kiện 2, 3, .... cho đến khi kết thúc.
  • Trong Switch...Case sử dụng break: Chương trình cũng sẽ thực thi từng case từ trên xuống dưới. Tuy nhiên, nếu trong case đó có lệnh break, thì ngay sau khi thực hiện xong các câu lệnh trong case, chương trình sẽ thoát khỏi Switch...Case.

Ví dụ sử dụng câu lệnh Switch...Case trong C / C++

Trong phần này mình sẽ thực hiện hai ví dụ sử dụng Switch...Case bằng hai ngôn ngữ khác nhau là C và C++.

Ví dụ 1: Xếp loại điểm bằng ngôn ngữ C. Người dùng sẽ nhập vào loại điểm A, B, C, D, E, chương trình sẽ so sánh và xếp loại điểm tương ứng là giỏi, khá, trung bình khá, trung bình và yếu.

#include <stdio.h>

int main () {
     
  char diem = 'A';
  printf("Diem cua ban la: %s\n", &diem);  
  switch(diem) {
      case 'A':
         printf("Xep loai gioi.\n");
         break;
      case 'B':
         printf("Xep loai kha.\n");
         break;
      case 'C':
         printf("Xep loai trung binh kha.\n");
         break;
      case 'D':
         printf("Xep loai trung binh.\n");
         break;
      case 'F':
         printf("Xep loai yeu.\n");
         break;
      default:
         printf("Khong hop le.\n");
   }
  printf("\n------------------------------\n");
	printf("Chuong trinh nay duoc dang tai Codehow.net");
   return 0;
}

Kết quả:

bai10 05 png

Ví dụ 2: Người dùng nhập vào một số từ 2 - 8, chương trình sẽ hiển thị thứ tương ứng, chương trình này sẽ được viết bằng ngôn ngữ C++.

#include <iostream>
using namespace std;
 
int main()
{
    int number;
    cout<<"Nhap vao so can kiem tra: ";
    cin>>number;
    switch (number){
        case 2:
            cout <<"Thu hai";
            break;
        case 3:
            cout <<"Thu ba";
            break;
        case 4:
            cout <<"Thu tu";
            break;
        case 5:
            cout <<"Thu nam";
            break;
        case 6:
            cout <<"Thu sau";
            break;
        case 7:
            cout <<"Thu bay";
            break;
        case 8:
            cout <<"Chu nhat";
            break;
        default:
            cout <<"Khong ton tai";
    }

    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Kết quả:

bai10 03 png

Lời kết

Như vậy là chúng ta đã cùng nhau tìm hiểu về câu lệnh Switch...Case trong C / C++. Đây là kiến thức rất quan trọng, vì vậy các bạn hãy luyện tập thật nhiều để có thể sử dụng nó một cách thành thạo nhé. Ở bài tiếp theo mình sẽ giới thiệu về vòng lặp for trong C / C++, các bạn chú ý theo dõi nhé !!!

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top