Основно съдържание
Програмиране
Курс: Програмиране > Раздел 1
Урок 10: Логически и if инструкции- If инструкции
- Предизвикателство: Подскачаща топка
- Още взаимодействия с мишка
- Предизвикателство: Първата ти програма за рисуване
- Булеви числа
- Предизвикателство: Числов анализатор
- Логически оператори
- Предизвикателство: Първият ти бутон
- Предизвикателство: По-умен бутон
- If/Else - част 1
- Предизвикателство: Flashy Flash Card
- If/Else - част 2
- Преглед: Логика и If конструкции
- Случайни числа
- Проект: Магическа топка 8
© 2023 Khan AcademyУсловия за ползванеДекларация за поверителностПолитика за Бисквитки
Преглед: Логика и If конструкции
Това е преглед на всичко, което научихме в този урок за логически и условни изрази.
Често искаме да можем да правим някакви неща при определени "условия" в своите програми – искаме да можем да кажем "ако това е изпълнено, направи Х, но ако другото е изпълнено, направи Y". Както когато се събудим сутринта – "ако навън вали, ще си взема чадър, но ако е слънчево, ще си взема очилата". В своите програми можем да правим неща при определени условия, като използваме конструкции if и if/else в комбинация с условни изрази.
Конструкцията if казва на програмата да изпълни някакъв блок с код, ако някакво условие е изпълнено. В кода по-долу отпечатваме съобщението, само ако
x
е по-голямо от 0:var x = 5;
if (x > 0) {
text('x е положително число!', 200, 200);
}
Тъй като x = 5, което е по-голямо от 0, ще видим отпечатано съдържанието на текста. Ако променим x на -1, няма да видим съобщението, защото x не е по-голямо от 0.
x > 0
е това, което наричаме условен израз – което означава, че е израз, който има стойност истина (true)
или лъжа (false)
. Когато стойността е true
или false
, я наричаме булева стойност (за разлика от числата и стринговете). Можем да просто да покажем условния израз, като напишем:text(x > 0, 200, 200); // Показва "true"
Бихме могли да го съхраним в променлива и след това да го покажем:
var isPositive = x > 0;
text(isPositive, 200, 200);
Тогава ще кажем, че
isPositive
съхранява булева стойност, защото е или true
, или false
в зависимост от x.Има много начини да създадем условни изрази, които да имат стойност
true
или false
, защото имаме много оператори за сравнение. Ето най-популярните от тях:В следната таблица са показани най-често използваните оператори за сравнение и изрази в примери със стойност истина:
var myAge = 28;
Оператор | Значение | Верни изрази | |
---|---|---|---|
=== | Строго равенство | myAge === 28 | |
!== | Строго неравенство | myAge !== 29 | 28 !== 29 |
> | По-голямо от | myAge > 25 | 28 > 25 |
>= | По-голямо или равно на | myAge >= 28 | 28 >= 28 |
< | По-малко от | myAge < 30 | 28 < 30 |
<= | По-малко от или равно на | myAge <= 28 | 28 <= 28 |
Честа грешка е да се обърка операторът за присвояване (
=
) с оператора за равенство (===
), защото използват знаци за равно, но действието им е много различно. Операторът за присвояване всъщност променя стойността на променливата, докато операторът за равенство само ще прочете стойността на променливата и ще провери дали е равна на нещо. Например:var x = 2 + 2; // Задава стойност, равна на 4
if (x === 4) { // Задава въпроса "дали е равно на 4?"
text("Да, 2 + 2 = 4!", 200, 200);
}
Понякога искаме да комбинираме няколко сравнения в един израз и затова имаме логически оператори. С тези оператори можем да кажем "ако и X, и Y са истина" или "ако X е истина или Y е истина" в своите програми.
Ако две условия трябва да бъдат истина, можем да използваме оператора
&&
("логическо и"):var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 && numberOfClouds < 5) {
text("Сложи си слънцезащитен крем!", 200, 200);
}
В програмите си често проверяваме дали позицията на мишката на потребителя е в някакъв правоъгълник (за да анимираме бутон) и в този случай ни трябват няколко оператора
&&
:rect(100, 50, 100, 100);
mousePressed = function() {
if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
text("Натисна го!", 80, 75);
}
};
Ако трябва да е изпълнено само едно условие, можем да използваме оператора
||
("логическо или"):var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 || numberOfClouds < 5) {
text("Намажи се със слънцезащитен крем, ако е горещо навън или ако няма много облаци!", 200, 200);
}
Можем да използваме
&&
и ||
в един израз, ако имаме да проверим много сложно условие. Трябва да използваме скоби, когато групираме изрази, за да не се бърка програмата в какъв ред да ги оцени:var myAge = 28;
if ((myAge >= 0 && myAge < 3) || myAge > 90) {
println('Не си в разцвета на силите си.');
}
Да се върнем към if инструкциите. Често искаме да изпълним блок с код, ако if условието не е изпълнено – в този случай добавяме инструкцията else.
var age = 28;
if (age > 16) {
println('Ура, можеш да шофираш!');
} else {
println('Съжалявам, трябва да остарееш с още ' + (16 - age) + ' години, за да можеш да шофираш.');
}
Понякога искаме да проверим няколко условия и да направим различно нещо за всяко от тях. В този случай можем да използваме
else if
:var age = 20;
if (age >= 35) {
println('Можеш да гласуваш И да заемеш държавен пост !');
} else if (age >= 30) {
println('Можеш да гласуваш И да участваш в избори за сенатор!');
} else if (age >= 18) {
println('Можеш да гласуваш!');
} else {
println('Нямаш глас в управлението!');
}
Можеш да сложиш колкото искаш условия, само се убеди, че всяко от тях е достъпно. Провери кода си, като променяш променливите, и влез във всеки блок с код, за да се увериш, че работи.
Надявам се, че вече разбираш, че условните конструкции са важна част от програмирането и ни позволяват да създаваме по-мощни и гъвкави програми.
Искаш ли да се присъединиш към разговора?
Все още няма публикации.