Thứ Ba, 9 tháng 4, 2024

16.Mệnh đề if-else trong C

Tất cả những gì chúng ta bàn qua cho đến phần này là cơ sở để chúng ta đi vào việc lập trình thật sự.

Cá nhân chúng tôi cho rằng mệnh đề If-Else là linh hồn của bất cứ ngôn ngữ lập trình nào. Nếu không có mệnh đề If-Else, chúng ta có thể khẳng định không có bất cứ chương trình nào có thể hoạt động. 

Vài ví dụ: 

Chương trình gửi tin nhắn sẽ không thể biết người dùng đã nhấn nút send chưa nếu không có If-Else. 

Chương trình phân loại trong một kỳ thi sẽ không thể hoạt động nếu không có If-Else.

Chương trình kiểm tra tuổi để được lái xe sẽ hoạt động ra sao nếu không có If-Else? 

Mệnh đề if-else trong C được sử dụng để kiểm tra một biểu thức điều kiện nào đó có đúng hay không, nếu đúng thì thực thi những câu lệnh bên trong khối lệnh if và ngược lại nếu sai thì nó sẽ bỏ qua những câu lệnh đó. Có ba dạng của câu lệnh if trong C.

Mệnh đề if.
Mệnh đề if-else.
Mệnh đề if-elseif-else.


Mệnh đề if

Mệnh đề if được sử dụng để kiểm tra giá trị dạng boolean (Đúng-Sai) của điều kiện. Khối lệnh sau if được thực thi nếu giá trị của điều kiện là Đúng (True).

Cú pháp:

if (điều_kiện) {  
  // khối lệnh này được thực thi nếu
điều_kiện= true
}

Chúng ta sẽ thử với chương trình tào lao của chúng ta. Thêm mệnh đề IF sau vào chương trình.

         if (so % 2 == 0) {
              printf("Bien so la so chan.");
         } 

Tới phần 16 này, có lẽ mọi thứ đã tương đối dễ hiểu với bạn.

  • Toán tử so sánh (==) là điều kiện của mệnh đề IF
  • Trong câu lệnh ta lấy giá trị của biến so chia cho 2 và so sánh với giá trị 0.
  • Ta có thể hiểu so % 2 == 0điều_kiện. Nó sẽ ĐÚNG (TRUE) nếu biến so chia cho 2 bằng 0 (số chẵn)

Trong trường hợp chương trình của chúng ta điều_kiện = true vì vậy lệnh pritf được thực hiện.

 

Mệnh đề If-Else trong C


Nếu thay đổi điều kiện ví dụ so % 2 == 1 thì lệnh printf sẽ không thực hiện vì  điều_kiện =false (biến so =2034 chia cho 2 không dư)

 

Mệnh đề if-else

Mệnh đề if được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Khối lệnh sau if được thực thi nếu giá trị của điều kiện là True, nếu là False thì chỉ có khối lệnh sau else được thực hiện.

Cú pháp:

if (điều_kiện) {  
  // khối lệnh này được thực thi nếu điều_kiện = true
} else {
  // khối lệnh này được thực thi nếu điều_kiện = false

 

Ta sửa lại chương trình một chút, đây là mệnh đề if-else trong chương trình


if (so % 2 == 0) {
            printf("Bien so la so chan.");
        } else {
        printf("Bien so la so le.");
    }

 
Bấm Run để chạy ta sẽ thấy kết quả


 



 Đây là chương trình của chúng ta

/* Đây là chương trình tào lao */

#include <stdio.h>

#include <math.h>

int main()
{

    int so = 2024; // Đây là biến số

    char namtoi[] = "Năm 2025";  // Đây là biến chuỗi

    float a = 8.3462326543;
    double b = 10.8745634535333;

    int n;

    char Ten;

 
   
int soTien;

    int soNam;

    int  tongSoTien;

    int x = 15 < 25 ? 100 : 200;
    
    int diBien1= (10 < 20) && (20 >= 20);
    int diBien2= (10 > 20) || (20 < 10); 

    so +=10;

    long long so2 = so;

   float so3 = 35.82;
   int so4 = (int)so3 + 1;
   int so5 = 2, so6 = 10;

 
    printf("Xin Chào ! \n");
    printf("Rất vui gặp bạn!");
    printf("Năm nay là %d \n", so);
    printf("Năm tới là %s", namtoi);

    printf("In 4 chữ số sau dấu phẩy : %.4f\n", a);
    printf("In 5 chữ số sau dấu phẩy : %.5lf\n", b);
   
printf("Hãy nhập một số từ 1-100:  ");

    scanf("%d", &n);

    printf("Gía trị của n là : %d\n", n);

    printf("Nhap tên của bạn, chỉ một chữ A,B,C : ");

     scanf(" %c", &Ten);
    printf("Tên bạn là : %c\n", Ten);

     printf("Hãy nhập số tiền gửi hàng tháng:  ");
    scanf("%d", &soTien);

    printf("Hãy nhập tổng số năm đã tiết kiệm:  ");
    scanf("%d", &soNam);

   tongSoTien = (soTien * 12) * soNam;
    
    printf("Xin chào: %c, sau %d nam kien tri tich luy, ban da kiem đươc %d .Xin chuc mung ban!", Ten, soNam, tongSoTien); 

   printf("%d\n", x);
    printf("%d, %d\n", diBien1,diBien2);

    printf("%d ", 100 > 50);
    printf("%d ", 20 <= 30);
    printf("%d ", 80 >= 100);

   printf("Gia tri cua bien so2 là %lld \n", so2);

   printf("Gia trị so4 là %d \n", so4);

   printf("%d ", (int)pow(so5, so6));
   printf("Gia trị so3 ceil là %f \n", ceil(so3));
   printf("Gia trị so3 floor là %f \n", floor(so3));

      if (so % 2 == 0) {
            printf("Bien so la so chan.");
        } else {
        printf("Bien so la so le.");

    }


    return 0;
}

 

 

Mệnh đề if-elseif-else

Mệnh đề if-elseif-else cũng kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện if là True thì chỉ có khối lệnh sau if sẽ được thực hiện. Nếu giá trị điều kiện else if nào là True thì chỉ có khối lệnh sau if else đó sẽ được thực hiện… Nếu tất cả điều kiện của if và if else là False thì chỉ có khối lệnh sau else sẽ được thực hiện.

Cú pháp:


if (điều_kiện1) {  
  // khối lệnh này được thực thi nếu điều_kiện1 = true
} else if (điều_kiện2) {
  // khối lệnh này được thực thi nếu điều_kiện1 = false và điều_kiện2 = true
...
} else {
  // khối lệnh này được thực thi nếu nếu tất cả những điều kiện trên = false
}


Chúng ta thử luôn với biến soTien đã có sẵn trong chương trình, tùy thuộc vào số tiền mà ta sẽ có những ứng xử khác nhau. Luu ý đây không phải là code hoàn chỉnh, chỉ nhằm mục đích thử mệnh đề if-elseif-else mà thôi vì vậy chúng ta sẽ nhập những số thấp hơn 1.000.000 (một triệu)
Thêm những lệnh sau vào chương trình

if (soTien < 0 || soTien >= 1000000) {
        printf("Ban nen nhap so tu 1 den 1000000");
    } else if (soTien > 0 && soTien < 700000) {
        printf("Ban gui ít qua");
    } else if (soTien >= 700000 && soTien < 800000) {
        printf("Ban gui o muc trung binh");
    } else if (soTien >= 800000 && soTien < 900000) {
        printf("Ban gui tương doi nhieu");
    } else if (soTien >= 900000 && soTien <= 1000000) {
        printf("Ban gui nhieu qua!");
    }


Bấm Run để chạy chương trình:


Và đây là chương trình vĩ đại của chúng ta cho đến lúc này

/* Đây là chương trình tào lao */

#include <stdio.h>

#include <math.h>

int main()
{

    int so = 2024; // Đây là biến số

    char namtoi[] = "Năm 2025";  // Đây là biến chuỗi

    float a = 8.3462326543;
    double b = 10.8745634535333;

    int n;

    char Ten;

 
   
int soTien;

    int soNam;

    int  tongSoTien;

    int x = 15 < 25 ? 100 : 200;
    
    int diBien1= (10 < 20) && (20 >= 20);
    int diBien2= (10 > 20) || (20 < 10); 

    so +=10;

    long long so2 = so;

   float so3 = 35.82;
   int so4 = (int)so3 + 1;
   int so5 = 2, so6 = 10;

 
    printf("Xin Chào ! \n");
    printf("Rất vui gặp bạn!");
    printf("Năm nay là %d \n", so);
    printf("Năm tới là %s", namtoi);

    printf("In 4 chữ số sau dấu phẩy : %.4f\n", a);
    printf("In 5 chữ số sau dấu phẩy : %.5lf\n", b);
   
printf("Hãy nhập một số từ 1-100:  ");

    scanf("%d", &n);

    printf("Gía trị của n là : %d\n", n);

    printf("Nhap tên của bạn, chỉ một chữ A,B,C : ");

     scanf(" %c", &Ten);
    printf("Tên bạn là : %c\n", Ten);

     printf("Hãy nhập số tiền gửi hàng tháng:  ");
    scanf("%d", &soTien);

    printf("Hãy nhập tổng số năm đã tiết kiệm:  ");
    scanf("%d", &soNam);

   tongSoTien = (soTien * 12) * soNam;
    
    printf("Xin chào: %c, sau %d nam kien tri tich luy, ban da kiem đươc %d .Xin chuc mung ban!", Ten, soNam, tongSoTien); 

   printf("%d\n", x);
    printf("%d, %d\n", diBien1,diBien2);

    printf("%d ", 100 > 50);
    printf("%d ", 20 <= 30);
    printf("%d ", 80 >= 100);

   printf("Gia tri cua bien so2 là %lld \n", so2);

   printf("Gia trị so4 là %d \n", so4);

   printf("%d ", (int)pow(so5, so6));
   printf("Gia trị so3 ceil là %f \n", ceil(so3));
   printf("Gia trị so3 floor là %f \n", floor(so3));

      if (so % 2 == 0) {
            printf("Bien so la so chan.");
        } else {
        printf("Bien so la so le.");

    }

    if (soTien < 0 || soTien >= 1000000) {
        printf("Ban nen nhap so tu 1 den 1000000");
    } else if (soTien > 0 && soTien < 700000) {
        printf("Ban gui ít qua");
    } else if (soTien >= 700000 && soTien < 800000) {
        printf("Ban gui o muc trung binh");
    } else if (soTien >= 800000 && soTien < 900000) {
        printf("Ban gui tương doi nhieu");
    } else if (soTien >= 900000 && soTien <= 1000000) {
        printf("Ban gui nhieu qua!");
    }


    return 0;
}

 

Phần tiếp theo

Phần trước

Không có nhận xét nào:

Đăng nhận xét