C - Các câu lệnh if lồng nhau

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ cùng khám phá thế giới kỳ thú của các câu lệnh if lồng nhau trong ngôn ngữ C. Là người giáo viên khoa học máy tính gần gũi của bạn, tôi rất vui được hướng dẫn bạn qua chủ đề này. tin tôi đi, một khi bạn đã nắm vững, bạn sẽ lồng các câu lệnh if như một chuyên gia xây dựng chim!

C - nested if statements

什么是嵌套的if语句?

Trước khi chúng ta nhảy vào phần sâu, hãy bắt đầu từ cơ bản. Bạn biết đấy, trong cuộc sống, chúng ta thường đưa ra các quyết định dựa trên nhiều điều kiện? Đúng vậy, các câu lệnh if lồng nhau cũng giống như vậy! Chúng cho phép chúng ta kiểm tra nhiều điều kiện và thực hiện các khối mã khác nhau dựa trên những điều kiện đó.

Hãy tưởng tượng bạn đang quyết định mặc gì. Bạn có thể nghĩ:

  1. Nếu ngoài trời lạnh...
  • Nếu trời đang mưa...
  • Mặc áo mưa
  • Ngược lại...
  • Mặc áo ấm
  1. Ngược lại (nếu không lạnh)...
  • Nếu trời nắng...
  • Mặc áo thun
  • Ngược lại...
  • Mặc áo mỏng

Quá trình ra quyết định này chính xác là điều mà các câu lệnh if lồng nhau làm trong lập trình!

Cú pháp

Bây giờ, hãy xem cách chúng ta viết các câu lệnh if lồng nhau trong C. Cấu trúc cơ bản trông như thế này:

if (điều kiện1) {
// Mã để thực hiện nếu điều kiện1 là true
if (điều kiện2) {
// Mã để thực hiện nếu cả điều kiện1 và điều kiện2 đều là true
}
else {
// Mã để thực hiện nếu điều kiện1 là true nhưng điều kiện2 là false
}
}
else {
// Mã để thực hiện nếu điều kiện1 là false
if (điều kiện3) {
// Mã để thực hiện nếu điều kiện1 là false nhưng điều kiện3 là true
}
else {
// Mã để thực hiện nếu cả điều kiện1 và điều kiện3 đều là false
}
}

Đừng lo nếu điều này trông có vẻ đáng sợ ban đầu. Chúng ta sẽ phân tích nó với một số ví dụ!

Ví dụ 1: Nhiệt độ và Độ ẩm

Hãy bắt đầu với một ví dụ đơn giản. Chúng ta sẽ viết một chương trình đề xuất mặc gì dựa trên nhiệt độ và độ ẩm.

#include <stdio.h>

int main() {
int temperature = 25;
int humidity = 80;

if (temperature > 30) {
if (humidity > 70) {
printf("Nhiệt độ cao và độ ẩm lớn. Mặc quần áo nhẹ và thở thoải mái.\n");
} else {
printf("Nhiệt độ cao nhưng khô. Mặc quần áo nhẹ và uống nhiều nước.\n");
}
} else if (temperature > 20) {
if (humidity > 70) {
printf("Thời tiết ấm và độ ẩm lớn. Áo thun sẽ ổn.\n");
} else {
printf("Thời tiết dễ chịu. Thưởng thức thời tiết!\n");
}
} else {
printf("Thời tiết mát. Hãy cân nhắc mặc áo mỏng.\n");
}

return 0;
}

Trong ví dụ này, chúng ta đầu tiên kiểm tra nhiệt độ. Nếu nó trên 30°C, chúng ta sau đó kiểm tra độ ẩm để quyết định giữa "nhiệt độ cao và độ ẩm lớn" hoặc "nhiệt độ cao nhưng khô". Nếu nhiệt độ介于 20°C và 30°C, chúng ta lại kiểm tra độ ẩm để đưa ra lời khuyên cụ thể. Nếu nó dưới 20°C, chúng ta đơn giản đề xuất mặc áo mỏng.

Ví dụ 2: Máy tính Điểm số

Bây giờ, hãy thử một điều gì đó phức tạp hơn. Chúng ta sẽ tạo một máy tính điểm số không chỉ xác định điểm loại mà còn thêm dấu cộng hoặc trừ.

#include <stdio.h>

int main() {
int score = 85;

if (score >= 90) {
if (score >= 97) {
printf("A+\n");
} else if (score >= 93) {
printf("A\n");
} else {
printf("A-\n");
}
} else if (score >= 80) {
if (score >= 87) {
printf("B+\n");
} else if (score >= 83) {
printf("B\n");
} else {
printf("B-\n");
}
} else if (score >= 70) {
if (score >= 77) {
printf("C+\n");
} else if (score >= 73) {
printf("C\n");
} else {
printf("C-\n");
}
} else if (score >= 60) {
if (score >= 67) {
printf("D+\n");
} else if (score >= 63) {
printf("D\n");
} else {
printf("D-\n");
}
} else {
printf("F\n");
}

return 0;
}

Chương trình này đầu tiên xác định phạm vi điểm loại (A, B, C, D, hoặc F), sau đó sử dụng các câu lệnh if lồng nhau để thêm dấu cộng hoặc trừ. Nó giống như mộtRussian nesting doll của các điểm số!

Ví dụ 3: Trò chơi Phiêu lưu Đơn giản

Hãy cùng nhau vui vẻ và tạo một trò chơi phiêu lưu văn bản đơn giản sử dụng các câu lệnh if lồng nhau.

#include <stdio.h>

int main() {
char direction;
printf("Bạn đang ở ngã tư. Bạn đi trái (L) hay phải (R)? ");
scanf(" %c", &direction);

if (direction == 'L' || direction == 'l') {
printf("Bạn đã chọn đi trái.\n");
printf("Bạn thấy một con sông. Bạn bơi qua (S) hay tìm cầu (B)? ");
scanf(" %c", &direction);

if (direction == 'S' || direction == 's') {
printf("Bạn bơi qua và tìm thấy một két vàng. Bạn đã thắng!\n");
} else if (direction == 'B' || direction == 'b') {
printf("Bạn tìm thấy một cây cầu, qua an toàn, nhưng không có kho báu. Trò chơi kết thúc.\n");
} else {
printf("Lựa chọn không hợp lệ. Con sông cuốn bạn đi. Trò chơi kết thúc.\n");
}
} else if (direction == 'R' || direction == 'r') {
printf("Bạn đã chọn đi phải.\n");
printf("Bạn gặp một con rồng. Bạn đánh (F) hay chạy (R)? ");
scanf(" %c", &direction);

if (direction == 'F' || direction == 'f') {
printf("Bạn dũng cảm đánh con rồng và chiến thắng! Bạn là một anh hùng!\n");
} else if (direction == 'R' || direction == 'r') {
printf("Bạn chạy an toàn, nhưng không có vinh quang. Trò chơi kết thúc.\n");
} else {
printf("Lựa chọn không hợp lệ. Con rồng ăn bạn. Trò chơi kết thúc.\n");
}
} else {
printf("Lựa chọn không hợp lệ. Bạn đứng im và không có gì xảy ra. Trò chơi kết thúc.\n");
}

return 0;
}

Trò chơi này sử dụng các câu lệnh if lồng nhau để tạo ra các con đường khác nhau dựa trên lựa chọn của người chơi. Nó là một ví dụ đơn giản về cách các câu lệnh if lồng nhau có thể tạo ra các叙事 hoặc cây quyết định.

Ví dụ 4: Hệ thống Đăng nhập

Cuối cùng, hãy tạo một hệ thống đăng nhập cơ bản kiểm tra cả tên người dùng và mật khẩu.

#include <stdio.h>
#include <string.h>

int main() {
char username[20];
char password[20];

printf("Nhập tên người dùng: ");
scanf("%s", username);

if (strcmp(username, "admin") == 0) {
printf("Nhập mật khẩu: ");
scanf("%s", password);

if (strcmp(password, "secretpassword") == 0) {
printf("Đăng nhập thành công. Chào mừng, admin!\n");
} else {
printf("Mật khẩu không chính xác. Truy cập bị từ chối.\n");
}
} else if (strcmp(username, "user") == 0) {
printf("Nhập mật khẩu: ");
scanf("%s", password);

if (strcmp(password, "userpass") == 0) {
printf("Đăng nhập thành công. Chào mừng, user!\n");
} else {
printf("Mật khẩu không chính xác. Truy cập bị từ chối.\n");
}
} else {
printf("Tên người dùng không tìm thấy. Truy cập bị từ chối.\n");
}

return 0;
}

Trong ví dụ này, chúng ta đầu tiên kiểm tra tên người dùng. Nếu nó khớp với "admin" hoặc "user", chúng ta sau đó kiểm tra mật khẩu tương ứng. Điều này minh họa cách các câu lệnh if lồng nhau có thể được sử dụng để thực hiện hệ thống xác thực nhiều cấp độ.

Kết luận

Các câu lệnh if lồng nhau là một công cụ mạnh mẽ trong bộ công cụ lập trình của bạn. Chúng cho phép bạn tạo ra các cấu trúc quyết định phức tạp và xử lý nhiều điều kiện một cách dễ dàng. Hãy nhớ, trong khi chúng rất hữu ích, hãy cẩn thận không lồng quá sâu, vì điều này có thể làm cho mã của bạn khó đọc và duy trì. Như với nhiều điều trong lập trình, sự rõ ràng và đơn giản là chìa khóa!

Tôi hy vọng hướng dẫn này đã giúp bạn hiểu rõ hơn về các câu lệnh if lồng nhau. Hãy tiếp tục thực hành, và sớm bạn sẽ thành thạo việc lồng các điều kiện! Chúc các bạn lập trình vui vẻ, các nhà lập trình tương lai!

Credits: Image by storyset