John Squirrels
Ниво
San Francisco

Java Boolean

Публикувано в групата
Думата „булев“ в контекста на езика Java може да се използва в различни, макар и много свързани значения. Може да е:
  • булев примитивен тип or булева променлива от този тип
  • Java Boolean клас or Boolean обвиващ обект
  • Булев израз, булева стойност, няHowво condition
  • Булеви оператори на Java
В тази статия ще разгледаме всички тези опции и ще обясним Howви концепции са в основата на булевите изрази. Булева стойност на Java - 1

Какво е булево в общ смисъл

Концепцията за булев израз идва от математиката or по-скоро от математическата логика. Булев израз в пропозиционалната алгебра е израз, за ​​който може да се каже, че е верен or неверен . Например:
„Снегът е бял“ „Кроcodeorте могат да летят“ „2 + 2 = 4“ „1 + 1 = 21“
В същото време "2" or "сняг" не са булеви изрази.

Java boolean примитивен тип данни и булеви променливи

Говорейки за булев тип в Java, първо най-вероятно това е булев примитивен тип данни и булеви променливи от този тип. Както вероятно вече се досещате, променливите от този тип могат да приемат само две стойности, true и false. Java има доста строги ограничения: булева стойност в Java не може да бъде преобразувана в друг тип данни и обратно. По-специално, boolean в Java не е интегрален тип и целочислените стойности не могат да се използват instead of булеви стойности. Ето пример за директно задаване на булев тип:
boolean myBoolean; //boolean variable
myBoolean = false;
boolean myBoolean1 = true; //another boolean variable
Тук имаме 2 булеви променливи. Нека напишем малка програма с пример за използване на булев тип:
//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
Тази програма отпечатва „false“ на конзолата. Между другото, булева променлива е зададена на false по подразбиране, но Java не ви позволява да работите с неинициализирани локални променливи.

Булеви изрази в Java

В допълнение към изричното инициализиране на булева променлива на true or false, булевият тип данни се използва имплицитно на много места. Точно Howто резултатът от всяко събиране на числа ще бъде число, резултатът от всяко сравнение ще бъде вярно or невярно, тоест ще бъде от булев тип . Това означава, че в допълнение към директното определяне на булева стойност чрез оператора за присвояване на булева променлива, булевите стойности са резултат от различни сравнения, като 5 > 2 , и се използват предимно в условни и циклични изрази. Ето пример за такова използване на булев тип:
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
Резултатът е:
вярно фалшиво вярно
В случай на a < b операторът < сравнява израза отляво с израза отдясно. Показахме резултата от сравнението на екрана. Тъй като 5 < 7 (изявлението е true), стойността true ще бъде отпечатана на конзолата. Във втория случай показваме директно сравнение на нула и седем, а в третия питаме дали стойността на променливата myBoolean е false. Тъй като случаят е такъв, извеждаме стойността true . Всъщност, за да изградим булеви изрази в Java, можем да използваме всяHowви оператори за сравнение:
оператори за сравнение Java оператор Пример за операция Резултатът от операцията
По-малко < a < b true , ако a е по-малко от b, в противен случай е false
По-голяма > a > b вярно , ако a е по-голямо от b , в противен случай невярно
По-малко or равно <= a <= b true , ако a е по-малко от b or са равни, в противен случай е false
По-голям or equals >= a >= b true , ако a е по-голямо or равно на b , в противен случай е false
Равен == a == b true , ако a е равно на b , в противен случай false
Не е равно != a != b true , ако a не е равно на b , в противен случай false

Където се използват булеви стойности

Булевите стойности и условните изрази се използват много често в условията на оператори за разклоняване, троични оператори и цикли. Всъщност тяхното използване се основава на проверка на определени булеви изрази. Например:
public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }
      }
}
Тази програма отпечатва поредица от цели числа и ги увеличава с едно, стига conditionто в скобите след while да е изпълнено. Тоест, докато изразът i <=10 е верен.

Java булеви оператори. Изграждане на булеви изрази с булеви оператори

Следните логически (or булеви) операции са налични в Java:
  • Логическо отрицание, то също е НЕ or инversion. В Java се обозначава със символа ! преди израз.

  • Логично и също е И or връзка. Означава се със символа & между двата израза, към които се прилага.

  • Логически or в Java, също е ИЛИ, също е дизюнкция. В Java се обозначава със символа | между два израза.

  • Изключително or, XOR, строга дизюнкция. В Java се обозначава със символа ^ между два израза.

  • В Java логическите оператори включват условното or, означено като || , Howто и условното и, && .

Нека да разгледаме tableта с кратко описание на всеки от булевите оператори на Java, а по-долу ще ги опишем по-подробно и ще дадем примерни codeове. Под „операнди“ в tableта имаме предвид логическия израз or променливите, към които се прилага операторът.
a | b == true
Булев Java оператор Име Тип Описание Пример
! Логично „не“ (отрицание) единичен !x означава „не x“. Връща true, ако x е false . Връща false, ако x е true .
boolean x = true;

тогава

// !x == false
и Логическо "и" (и, логическо умножение) двоичен (a & b) връща true, ако и a , и b са true .
a = true;
b = false;

тогава

a & b == false
| Логическо ИЛИ (логическо събиране) двоичен (a | b) връща true, ако a or b or и двете са true .
a = true;
b = false;

тогава

^ Логическо изключващо ИЛИ (XOR) двоичен (a ^ b) връща true , ако само един от операндите (a or b) е true . Връща false , ако и двете са true or false едновременно. Всъщност, ако a не е равно на b , връща true .
a = true;
b = false;

тогава

a ^ b == true
&& Условно И (съкратено логическо И) двоичен a && b Това е същото като a & b , но ако a е false , операторът просто връща false без проверка на b .
|| Условно ИЛИ (съкратено логическо ИЛИ) двоичен а || b е същото като a | b , но ако a е true , операторът просто връща true , без да проверява b .
Обърнете внимание, че в Java операторите & , | и ^ се прилагат и за цели числа. В този случай те работят малко по-различно и се наричат ​​побитови (or побитови) логически оператори. Да вземем пример и да покажем няколко логически израза, съставени с помощта на логически оператори.
public class BoolTest2 {
   public static void main(String[] args) {
   int a = 5;
   int b = 7;
   boolean myBool1 = true;
   boolean myBool2 = false;
       System.out.println(myBool1&myBool2);
       System.out.println(myBool1|myBool2);
       System.out.println(!myBool1);
       System.out.println((a > b) & !myBool1 | myBool2);
   }
}
Ето резултата:
невярно вярно невярно невярно
Всъщност можете да правите много сложни логически конструкции, като използвате логически оператори. например
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
Ако всички променливи са инициализирани, такива конструкции ще работят. Въпреки това, не трябва да злоупотребявате с тях, те затрудняват четенето на codeа. Въпреки това е много полезно да се занимаваме с такива логически конструкции. Опитайте се да съставите логически изрази с други логически оператори, дадени в tableта.

Предимство на логическите операции

Както в математиката, в програмирането операторите имат специфичен ред на изпълнение, ако се срещат в един и същи израз. Унарните оператори имат предимства пред двоичните, а умножението (дори логическото) пред събирането. Ето логически оператори, поставени в списъка с теми по-високо, колкото по-висок е техният приоритет:
  • !

  • и

  • ^

  • |

  • &&

  • ||

Булева обвивка на Java

В Java всеки примитивен тип има "брат", обвиващ клас ( Wrapper ). Обвивката е специален клас, който съхранява стойността на примитив вътре. Това обаче е клас, така че можете да създавате негови екземпляри (обекти). Тези обекти съхраняват необходимите стойности на примитиви вътре, докато те ще бъдат реални обекти. Java boolean примитивен тип има обвивка Java Boolean (с главно B) клас. Обектите от булев клас се създават точно като всеки друг:
Boolean b = new Boolean(false);
Java Boolean класът има полезни методи. Един от най-интересните от тях е методът parseBoolean . static boolean parseBoolean(String s) метод анализира низовия аргумент като булев. Върнатият булев представлява стойността true , ако аргументът на низа не е нула и е equals, без да се вземат предвид главни и малки букви, на низа „true“. В противен случай връща false .

пример за метод parseBoolean

public class BoolTest2 {

        public static void main(String[] args)
        {
            System.out.println(Boolean.parseBoolean("True"));
            System.out.println(Boolean.parseBoolean("TRuE"));
            System.out.println(Boolean.parseBoolean("False"));
            System.out.println(Boolean.parseBoolean("here"));

        }
    }
Резултатът е:
true true false false
За да затвърдите наученото, ви предлагаме да гледате видео урок от нашия курс по Java
Коментари
  • Популярен
  • Нов
  • Стар
Трябва да сте влезли, за да оставите коментар
Тази страница все още няма коментари