Booleans and selection: if, else, switch · Логические типы и выбор: if, else, switch
True and false in C
- C has no separate true/false type by default. It uses numbers:
0means false, and any other number means true. - A test like
5 > 3produces1(true).5 < 3produces0(false). - (If you
#include <stdbool.h>you can writebool,true, andfalse— but plainintworks everywhere.)
Истина и ложь в C
- В C нет отдельного типа true/false по умолчанию. Используются числа:
0означает ложь, а любое другое число означает истину. - Проверка вида
5 > 3дает результат1(истина).5 < 3дает результат0(ложь). - (Если вы используете
#include <stdbool.h>, можно писатьbool,trueиfalse— но простойintработает везде.)
Comparing and combining
- Compare values with
==(equal),!=(not equal),<,>,<=,>=. - Be careful:
==tests equality; a single=assigns a value. They are different! - Combine tests with
&&(and),||(or), and!(not).a && bis true only when both are true.
Сравнение и комбинирование
- Сравнивайте значения с помощью
==(равно),!=(не равно),<,>,<=,>=. - Будьте осторожны:
==проверяет равенство; одиночный=присваивает значение. Это разные вещи! - Комбинируйте проверки с помощью
&&(и),||(или) и!(не).a && bистинно только тогда, когда оба условия истинны.
if / else if / else
if (test) { ... }runs the block only when the test is true.- Add
else if (...)to check another test, andelsefor "none of the above". - Only the first matching branch runs.
if / else if / else
if (test) { ... }выполняет блок только при истинности условия.- Добавьте
else if (...)для проверки следующего условия, аelseдля варианта «ни одно из вышеперечисленного». - Выполняется только первый совпавший ветвь.
#include <stdio.h>
int main(void) {
int score = 72;
if (score >= 90) {
printf("A\n");
} else if (score >= 60) {
printf("Pass\n"); // this one runs
} else {
printf("Fail\n");
}
return 0;
}
switch: choosing among many values
- A
switchpicks a branch based on one value (anintorchar). - Each
caseends withbreak;so it does not fall into the next one.default:catches everything else. switchis neat when you compare the same variable against many fixed values.
switch: выбор среди многих значений
- Конструкция
switchвыбирает ветвь на основе одного значения (переменнойintили константыchar). - Каждый
caseзаканчивается операторомbreak;, чтобы не переходить к следующему.default:перехватывает всё остальное. switchудобен, когда вы сравниваете одну и ту же переменную со множеством фиксированных значений.
Common mistakes
- Use
==to compare;=assigns (andif (x = 5)is always true). - Each
switchcase needs abreak;.
Распространенные ошибки
- Используйте
==для сравнения;=присваивает (иif (x = 5)всегда истинно). - Для каждого случая
switchтребуетсяbreak;.
Now you try
- Use comparisons and
&&/||to build your tests. Remember0is false, anything else is true. - For the
switchtask, divide the score by 10 first, then switch on the result. - Do not write a
main— the checker provides one.
Теперь попробуйте сами
- Используйте сравнения и конструкции
&&/||для создания условий. Помните, что0— это ложь, любое другое — истина. - Для задания со
switchсначала разделите балл на 10, затем примените switch к результату. - Не пишите
main— проверяющая система предоставит его.
if / else if / else
Conditions test top-down; the first true block runs. · Условия проверяются сверху вниз; выполняется первый истинный блок.
Complete int sign(int n) so it returns -1 when n is negative, 0 when n is zero, and 1 when n is positive. Do not write a main. · Завершите int sign(int n) так, чтобы она возвращала -1, если n отрицательное, 0, если n равен нулю, и 1, если n положительное. Не пишите main.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Complete int in_range(int n, int lo, int hi) so it returns 1 when n is between lo and hi (inclusive), and 0 otherwise. Use &&. Do not write a main. · Завершите int in_range(int n, int lo, int hi) так, чтобы она возвращала 1, если n находится между lo и hi (включительно), и 0 в противном случае. Используйте &&. Не пишите main.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Complete char grade_letter(int score) using a switch on score / 10. Return 'A' for 90–100, 'B' for the 80s, 'C' for the 70s, 'D' for the 60s, and 'F' below 60. Do not write a main. · Завершите char grade_letter(int score), используя оператор switch для проверки score / 10. Верните 'A' для оценок 90–100, 'B' для десятков 80-х, 'C' для десятков 70-х, 'D' для десятков 60-х и 'F' для оценок ниже 60. Не пишите main.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.