Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.


„Здравей, Амиго. Нека ти разкажа за нов тип данни. Булевата . Променливите от този тип могат да приемат само две стойности: истина и невярно .

"Как да го използваме?"

"Този тип се използва имплицитно на много места. Точно Howто всяка операция за събиране произвежда число, резултатът от всяко сравнение е булево . Ето някои примери:"

Код Обяснение
1
boolean m;
Тези два израза са еквивалентни. Стойността по подразбиране на булева променлива е false .
2
boolean m = false;
3
if (a > b)
    System.out.println(a);
Резултатът от сравнението ( вярно or невярно ) ще бъде присвоен на променливата m. Условието е изпълнено, ако резултатът на израза е true .
4
boolean m = (a > b);
if (m)
    System.out.println(a);
5
boolean m = (a > b);
if (m == true)
    System.out.println(a);
Няма нужда да сравнявате логическа ( булева ) променлива с true or false . Резултатът от сравнението ще бъде булева стойност , която съответства на другата променлива. Например true == true се оценява на true; true == false се оценява на false .
6
boolean m = (a > b);
if (m)
    System.out.println(a);

„Още примери:“

Код Обяснение
1
public boolean isALessThanB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
Този метод проверява дали числото a е по-малко от числото b.

Ето четири еквивалентни сравнения. Последният е най-компактен и правилен. Винаги се опитвайте да използвате компактна нотация.

2
public boolean isALessThanB (int a, int b)
{
   boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3
public boolean isALessThanB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4
public boolean isALessThanB (int a, int b)
{
    return a < b;
}

„Ами ако искам да напиша 0<a<b?“

"Java няма оператор за сравнение, който приема три операнда. Така че ще трябва да го направите по следния начин: (0<a) И (a<b) ."

„Да пиша ли думата И?“

„Чакай. Ще обясня това. Java има три логически оператора: И , ИЛИ и НЕ . Можете да ги използвате, за да конструирате условия с различна сложност. Можете да използвате тези оператори само с булеви изрази. Така че не можете да пишете ( a+1) AND (3) , но (a>1)AND (a<3) е ОК."

„ Операторът NOT е унарен: засяга само израза вдясно. По-скоро прorча на знак минус пред отрицателно число, отколкото на знак за умножение между две числа.“

"Можете да извършвате различни операции върху булеви (логически) променливи."

"Като например?"

„Хайде да погледнем:“

Логически оператор Java нотация Изразяване Резултат
И && вярно  &&  вярно вярно
вярно &&  невярно невярно
невярно  &&  вярно невярно
невярно && невярно невярно
ИЛИ || вярно || вярно вярно
вярно || невярно вярно
невярно || вярно вярно
невярно || невярно невярно
НЕ ! ! вярно невярно
! невярно вярно
Често срещани комбинации и изрази m && !m невярно
m || !м вярно
! (a && b) !a || !б
! (а || б) !a && !b

„Бихте ли ми дали още примери?“

"Сигурен:"

Java нотация Логическа нотация
(a<3) && (a>0) (a < 3) И (a>0)
(a>10) || (a<100) (a>10) ИЛИ (a<100)
(a<b) && (!(c<=d)) (a<b) И (НЕ (c<=d))

„Сега направете някои задачи.“

4
Задача
Java Syntax,  нивоурок
Заключено
Labels and numbers
Not all labels are equally useful, but sometimes a lack of labels results in chaos. Let's do a task that dishes out labels: use the keyboard to enter an integer, and make the program indicate whether the number is negative or positive (or zero), and even or odd. Why do we need this? Just because, for practice. After all, we're here to learn!