C - Вложенные если语句

Здравствуйте,future programmers! Сегодня мы окунемся в fascinирующий мир вложенных если语句 в языке C. Как ваш доброжелательный邻居-преподаватель информатики, я с радостью проведу вас через эту тему. Поверьте мне, как только вы привыкните к этому, вы будете вставлять если语句, как профи-строитель птичьих гнезд!

C - nested if statements

Что такое вложенные если语句?

Прежде чем окунуться в深海, давайте начнем с азов. Вы знаете, как в жизни мы часто принимаем решения на основе множества условий? Ну, вложенные если语句 как раз такие! Они позволяют нам проверять несколько условий и выполнять различные блоки кода в зависимости от этих условий.

Представьте, что вы решаете, что надеть. Вы можете подумать:

  1. Если на улице холодно...
  • Если идет дождь...
  • Наденьте дождевик
  • Иначе...
  • Наденьтеwarm jacket
  1. Иначе (если не холодно)...
  • Если солнечно...
  • Наденьте майку
  • Иначе...
  • Наденьте легкую куртку

Этот процесс принятия решений exactly то, что делают вложенные если语句 в программировании!

Синтаксис

Теперь давайте посмотрим, как мы пишем вложенные если语句 в C. Основная структура выглядит так:

if (condition1) {
// Код для выполнения, если condition1 истинно
if (condition2) {
// Код для выполнения, если как condition1, так и condition2 истинны
}
else {
// Код для выполнения, если condition1 истинно, но condition2 ложно
}
}
else {
// Код для выполнения, если condition1 ложно
if (condition3) {
// Код для выполнения, если condition1 ложно, но condition3 истинно
}
else {
// Код для выполнения, если как condition1, так и condition3 ложно
}
}

Не волнуйтесь, если это сначала выглядит пугающе. Мы разберем это на примерах!

Пример 1: Температура и влажность

Давайте начнем с простого примера. Мы напишем программу, которая предлагает, что надеть на основе температуры и влажности.

#include <stdio.h>

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

if (temperature > 30) {
if (humidity > 70) {
printf("It's hot and humid. Wear light, breathable clothes.\n");
} else {
printf("It's hot but dry. Wear light clothes and stay hydrated.\n");
}
} else if (temperature > 20) {
if (humidity > 70) {
printf("It's warm and humid. A t-shirt should be fine.\n");
} else {
printf("It's pleasant outside. Enjoy the weather!\n");
}
} else {
printf("It's cool. Consider wearing a light jacket.\n");
}

return 0;
}

В этом примере мы сначала проверяем температуру. Если она выше 30°C, мы затем проверяем влажность, чтобы решить, "жарко и влажно" или "жарко и сухо". Если температура находится между 20°C и 30°C, мы снова проверяем влажность для более конкретного совета. Если она ниже 20°C, мы просто предлагаем легкую куртку.

Пример 2: Калькулятор оценок

Теперь давайте попробуем что-то посложнее. Мы создадим калькулятор оценок, который не только определяет字母ную оценку, но и добавляет плюс или минус.

#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;
}

Эта программа сначала определяет общую оценку (A, B, C, D или F), а затем использует вложенные если语句 для добавления соответствующего плюса или минуса. Это похоже на матрешку оценок!

Пример 3: Простая текстовая игра

Давайте повеселимся и создадим простую текстовую игру с использованием вложенных если语句.

#include <stdio.h>

int main() {
char direction;
printf("You're at a crossroad. Do you go left (L) or right (R)? ");
scanf(" %c", &direction);

if (direction == 'L' || direction == 'l') {
printf("You've chosen to go left.\n");
printf("You see a river. Do you swim across (S) or look for a bridge (B)? ");
scanf(" %c", &direction);

if (direction == 'S' || direction == 's') {
printf("You swim across and find a treasure chest. You win!\n");
} else if (direction == 'B' || direction == 'b') {
printf("You find a bridge, cross safely, but find no treasure. Game over.\n");
} else {
printf("Invalid choice. The river sweeps you away. Game over.\n");
}
} else if (direction == 'R' || direction == 'r') {
printf("You've chosen to go right.\n");
printf("You encounter a dragon. Do you fight (F) or run (R)? ");
scanf(" %c", &direction);

if (direction == 'F' || direction == 'f') {
printf("You bravely fight the dragon and win! You're a hero!\n");
} else if (direction == 'R' || direction == 'r') {
printf("You run away safely, but without glory. Game over.\n");
} else {
printf("Invalid choice. The dragon eats you. Game over.\n");
}
} else {
printf("Invalid choice. You stand still and nothing happens. Game over.\n");
}

return 0;
}

Эта игра использует вложенные если语句 для создания различных путей на основе выбора игрока. Это простое demostrates того, как вложенные если语句 могут создавать ветвящиеся нарративы или деревья решений.

Пример 4: Система входа

Для последнего примера давайте создадим базовую систему входа, которая проверяет как имя пользователя, так и пароль.

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

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

printf("Enter username: ");
scanf("%s", username);

if (strcmp(username, "admin") == 0) {
printf("Enter password: ");
scanf("%s", password);

if (strcmp(password, "secretpassword") == 0) {
printf("Login successful. Welcome, admin!\n");
} else {
printf("Incorrect password. Access denied.\n");
}
} else if (strcmp(username, "user") == 0) {
printf("Enter password: ");
scanf("%s", password);

if (strcmp(password, "userpass") == 0) {
printf("Login successful. Welcome, user!\n");
} else {
printf("Incorrect password. Access denied.\n");
}
} else {
printf("Username not found. Access denied.\n");
}

return 0;
}

В этом примере мы сначала проверяем имя пользователя. Если оно соответствует "admin" или "user", мы затем проверяем соответствующий пароль. Это demonstrates, как вложенные если语句 могут быть использованы для реализации многоуровневых систем аутентификации.

Заключение

Вложенные если语句 - это мощный инструмент в вашем наборе программирования. Они позволяют вам создавать сложные структуры принятия решений и легко обрабатывать несколько условий. Помните, хотя они и очень полезны, будьте осторожны, чтобы не углубляться слишком глубоко, так как это может сделать ваш код трудным для чтения и поддержки. Как и во многом в программировании, clarity и simplicity являются ключом!

Надеюсь, этот учебник помог вам лучше понять вложенные если语句. Продолжайте практиковаться, и скоро вы будете вставлять условия, как профи! Happy coding, future programmers!

Credits: Image by storyset