If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Преглед: Логика и 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 !== 2928 !== 29
>По-голямо отmyAge > 2528 > 25
>=По-голямо или равно наmyAge >= 2828 >= 28
<По-малко отmyAge < 3028 < 30
<=По-малко от или равно наmyAge <= 2828 <= 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('Нямаш глас в управлението!');
}
Можеш да сложиш колкото искаш условия, само се убеди, че всяко от тях е достъпно. Провери кода си, като променяш променливите, и влез във всеки блок с код, за да се увериш, че работи.
Надявам се, че вече разбираш, че условните конструкции са важна част от програмирането и ни позволяват да създаваме по-мощни и гъвкави програми.

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.