Bài 9: Cấu trúc rẽ nhánh bằng if else và switch case trong lập trình C

Cấu trúc rẽ nhánh với if else và switch case

Trong bài này, chúng ta sẽ cùng học cách sử dụng câu lệnh if else và switch case. Đây là những câu lệnh điều kiện các bạn phải sử dụng trong mọi bài toán lập trình. Cùng nhau tìm hiểu nhé

Cấu trúc rẽ nhánh if, else là gì

Trong cuộc sống có nhiều lúc chúng ta phải ra quyết định khi có 2 hoặc nhiều hướng khác nhau. Lúc đấy chúng ta tường sử dụng câu NếuThì

VD:

Nếu bạn đọc Blog của mình thì bạn sẽ học được nhiều thứ.

Nếu crush thích mình thì mình sẽ tỏ tình với bạn ấy

Nếu hôm nay trời nắng thì mình sẽ đi chơi hoặc nếu không nắng thì mình ở nhà

Khi đó những thứ sau từ Nếu chính là điều kiện và sau từ Thì chính là lệnh thực thi.

Tương tự trong máy tính chúng ta có if (điều kiện) thì thực thi gì đó, hoặc nếu không else (điều kiện) thì thực thi một cái gì đó.

Cú pháp như sau:

if(bieu_thuc_boolean)
{
   /* cac lenh se duoc thuc thi neu bieu thuc boolean la true */
}
else
{
  /* cac lenh se duoc thuc thi neu bieu thuc boolean la false */
}

Nếu biểu thức logic được ước lượng là true, thì khi đó khối if sẽ được thực thi, nếu không thì khối else sẽ được thực thi.

Lệnh If và If else

Trong thực tế chúng ta sẽ sử dụng 2 cấu trúc này nhiều nhất, if sẽ kiểm tra nếu đúng điều kiện thì thực hiện. Con if else sẽ kiểm tra 2 trường hợp đúng và không đúng điều kiện thì thực thi 2 lệnh khác nhau.

Lệnh if

if 0
Lệnh if

Ví dụ:

#include <stdio.h>
 
int main(){
    int a;
    printf("Nhap a = "); scanf("%d", &a);
 
    if (a % 2 == 0) // a chia hết cho 2
    {
        printf("%d la so chan", a);
    }
    printf("\nKet thuc!");
}

Kết quả

if

Lệnh if else

if else

Ví dụ:

#include <stdio.h>
 
int main(){
    int a;
    printf("Nhap a = "); scanf("%d", &a);
 
    if (a % 2 == 0) // a chia hết cho 2
    {
        printf("%d la so chan", a);
    }
    else
    {
        printf("%d la so le", a);
    }
    printf("\nKet thuc!");
}

Kết quả

if else 1

Lệnh if else if

Nói đơn giản lệnh này sẽ kiểm tra lần lượt các điều kiện, nếu từ trên xuống dưới, nếu điều kiện nào đúng sẽ thực thi lệnh rồi thoát khỏi chương trình.

ladder if...else ...if statement flow chart

Ví dụ

#include <stdio.h>
 
int main(){
    int a, b;
    printf("Nhap a = "); scanf("%d", &a);
    printf("Nhap b = "); scanf("%d", &b);
 
    if(a > b)
    {
        printf("a lon hon b");
    }
    else if(a == b)
    {
        printf("a bang b");
    }
    else
    {
        printf("a nho hon b");
    }
}

Kết quả

if else if

Lệnh if lồng nhau

Lệnh này có thể hiểu là kiểm tra nhiều điều kiện phải được đáp ứng.

Ví dụ: Anh muốn cưới con tôi à?

Đúng ạ

Anh có nhà không?

Có ạ

Anh có xe không?

Có ạ

Lương tháng anh 20 củ không?

Có ạ => ok tôi gả cho

Không ạ => Cút

Ta xét ví dụ sau:

#include <stdio.h>
 
int main(){
    int a;
    printf("Nhap a = "); scanf("%d", &a);
 
    if(a > 0)
    {
        if(a % 2 == 0)
        {
            printf("\nDay la so duong chan!");
        }
        else
        {
            printf("\nDay la so duong le!");
        }
    }
    else
    {
        printf("\nDay khong phai so duong!");
    }
    
}

Kết quả

if long nhau

Switch case là gì?

Switch case thực ra tương tự như if else if đó là nếu điều kiện đó đáp ứng 1 trong các tiêu chí là được.

Cú pháp

switch (expression)
​{
    case constant1:
      // statements
      break;
    case constant2:
      // statements
      break;
    .
    .
    .
    default:
    // default statements
}

Lưu ý khi sử dụng:

  • 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ố.
  • Nếu có 1 case nào đó khớp giá trị, các khối lệnh tương ứng sau case đó sẽ được thực hiện cho tới khi gặp lệnh break. Do đó, nếu chúng ta không sử dụng break thì tất cả các case kể từ case khớp giá trị đều được thực hiện.
  • Case default sẽ được thực hiện nếu không có case nào khớp giá trị với expression.

lenh switch trong cpp

Sử dụng switch case

Kiểm tra điểm số và in ra học lực

#include <stdio.h>
 
int main ()
{
   char hocluc;
   printf("Nhap hoc luc: "); 
   scanf("%c", &hocluc);

   switch(hocluc)
   {
   case 'A' :
      printf("\nGioi!");
      break;
   case 'B' :
      printf("\nKha Gioi!");
      break;
   case 'C' :
      printf("\nKha!");
      break;
   case 'D' :
      printf("\nTrung Binh!");
      break;
   case 'F' :
      printf("\nYeu!");
      break;
   default :
      printf("\nKhong hop le!");
   }
   return 0;
}

Kết quả

switch case

 

Kết

If else và switch case được sử dụng rất nhiều trong lập trình C hay tất cả các ngôn ngữ lập trình khác như C++, Python, Java…. Vì vậy các bạn cần nắm vững cách làm việc với nó nhé.

Tiếp tục qua bài mới trong Serie Học lập trình C từ A tới Z 

Nếu thấy có ích hãy chia sẻ bài viết và tham gia nhóm Nghiện Lập Trình để giao lưu và học hỏi nhé

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 *