John Squirrels
Niveau
San Francisco

Java Boolean

Udgivet i gruppen
Ordet "boolesk" i forbindelse med Java-sprog kan bruges i forskellige, omend meget beslægtede, betydninger. Det kunne være:
  • boolsk primitiv type eller boolsk variabel af denne type
  • Java Boolean klasse eller Boolean wrapper objekt
  • Boolesk udtryk, boolsk værdi, en eller anden betingelse
  • Java booleske operatører
I denne artikel skal vi dække alle disse muligheder og forklare, hvilke begreber der ligger til grund for booleske udtryk. Java boolesk - 1

Hvad er en boolesk i generel forstand

Begrebet et boolsk udtryk kom fra matematik, eller rettere sagt, fra matematisk logik. Et boolsk udtryk i propositionalgebra er et udtryk, der kan siges at være sandt eller falsk. For eksempel:
"Sneen er hvid" "Krokodiller kan flyve" "2 + 2 = 4" "1 + 1 = 21"
Samtidig er "2" eller "sne" ikke booleske udtryk.

Java boolesk primitiv datatype og booleske variabler

Når vi taler om en boolean i Java, er det for det første højst sandsynligt en boolsk primitiv datatype og boolske variabler af denne type. Som du sikkert allerede har gættet, kan variabler af denne type kun have to værdier, sand og falsk. Java har ret strenge begrænsninger: en boolean i Java kan ikke konverteres til nogen anden datatype, og omvendt. Især boolean i Java er ikke en integraltype, og heltalsværdier kan ikke bruges i stedet for booleaner. Her er et eksempel på direkte indstilling af en boolesk type:
boolean myBoolean; //boolean variable
myBoolean = false;
boolean myBoolean1 = true; //another boolean variable
Her har vi 2 booleske variable. Lad os skrive et lille program med et eksempel på brug af en boolsk type:
//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
Dette program udskriver "falsk" til konsollen. Forresten er en boolsk variabel sat til false som standard, men Java tillader dig ikke at arbejde med ikke-initialiserede lokale variabler.

Booleske udtryk i Java

Ud over eksplicit at initialisere en boolesk variabel til sand eller falsk, bruges den boolske datatype implicit mange steder. Ligesom resultatet af enhver tilføjelse af tal vil være et tal, vil resultatet af enhver sammenligning være sandt eller falsk, dvs. det vil være af en boolesk type. Dette betyder, at udover direkte at angive en boolsk værdi gennem den boolske variabeltildelingssætning, er boolske værdier et resultat af forskellige sammenligninger, såsom 5 > 2 , og bruges primært i betingede og loop-udsagn. Her er et eksempel på en sådan brug af boolesk type:
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);
   }
}
Udgangen er:
sandt falsk sandt
I tilfælde af a < b sammenlignede operatoren < udtrykket til venstre med udtrykket til højre. Vi viste resultatet af sammenligningen på skærmen. Da 5 < 7 (sætningen er sand), vil værdien sand blive udskrevet til konsollen. I det andet tilfælde viser vi en direkte sammenligning af nul og syv, og i det tredje spørger vi, om værdien af ​​variablen myBoolean er falsk. Da dette er tilfældet, udlæser vi værdien sand . Faktisk, for at bygge booleske udtryk i Java, kan vi bruge enhver sammenligningsoperator:
sammenligningsoperatører Java-operatør Driftseksempel Resultatet af operationen
Mindre < a < b sandt , hvis a er mindre end b ellers falsk
Større > a > b sand , hvis a er større end b , ellers falsk
Mindre end eller lig <= a <= b sandt , hvis a er mindre end b , eller de er ens, ellers falsk
Større eller lige >= a >= b sand , hvis a større eller lig med b , ellers falsk
Lige == a == b sand , hvis a er lig med b , ellers falsk
Ikke lige != a != b sand , hvis a ikke er lig med b , ellers falsk

Hvor der bruges booleske værdier

Booleske værdier og betingede udtryk bruges meget ofte i betingelserne for grensætninger, ternære operatorer og loops. Faktisk er deres brug baseret på kontrol af visse boolske udtryk. For eksempel:
public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }
      }
}
Dette program udskriver en sekvens af heltal og øger dem med et, så længe betingelsen i parentes efter et stykke tid er opfyldt. Det vil sige, mens udtrykket i <=10 er sandt.

Java booleske operatorer. Opbygning af booleske udtryk med booleske operatører

Følgende logiske (eller booleske) operationer er tilgængelige i Java:
  • Logisk negation, det er heller IKKE eller inversion. I Java, angivet med symbolet ! før udtryk.

  • Logisk og, det er også OG eller konjunktion. Betegnes med symbolet & mellem de to udtryk, som det anvendes på.

  • Logisk eller i Java, det er også OR, det er også disjunktion. I Java, angivet med symbolet | mellem to udtryk.

  • Eksklusiv eller, XOR, streng disjunktion. I Java er det angivet med symbolet ^ mellem to udtryk.

  • I Java inkluderer logiske operatorer den betingede eller, betegnet som || , samt de betingede og, && .

Lad os tage et kig på tabellen med en kort beskrivelse af hver af de booleske Java-operatorer, og nedenfor vil vi beskrive dem mere detaljeret og give kodeeksempler. Med "operander" i tabellen mener vi det eller de logiske udtryk, som operatoren anvendes på.
a | b == true
Boolesk Java-operatør Navn Type Beskrivelse Eksempel
! Logisk "ikke" (negation) unær !x betyder "ikke x". Returnerer sand , hvis x er falsk . Returnerer falsk , hvis x er sandt .
boolean x = true;

derefter

// !x == false
& Logisk "og" (og logisk multiplikation) binær (a & b) returnerer sand , hvis både a og b er sande .
a = true;
b = false;

derefter

a & b == false
| Logisk ELLER (logisk tilføjelse) binær (a | b) returnerer sand , hvis a eller b eller begge er sande .
a = true;
b = false;

derefter

^ Logisk eksklusiv ELLER (XOR) binær (a ^ b) returnerer sand , hvis kun én af operanderne (a eller b) er sand . Returnerer falsk , hvis a og b begge er sande eller falske samtidigt. Faktisk, hvis a ikke er lig med b, returnerer det sandt .
a = true;
b = false;

derefter

a ^ b == true
&& Betinget AND (forkortet logisk AND) binær a && b Det er det samme som a & b , men hvis a er falsk , returnerer operatoren bare falsk uden at markere b .
|| Betinget ELLER (forkortet logisk ELLER) binær en || b er det samme som a | b , men hvis a er sand , returnerer operatoren bare sand uden at markere b .
Bemærk, at i Java er operatorerne & , | og ^ gælder også for heltal. I dette tilfælde fungerer de lidt anderledes og kaldes bitvise (eller bitvise) logiske operatorer. Lad os tage et eksempel og vise flere logiske udtryk sammensat ved hjælp af logiske operatorer.
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);
   }
}
Her er outputtet:
falsk sandt falsk falsk
Faktisk kan du lave meget komplekse logiske konstruktioner ved hjælp af logiske operatorer. for eksempel
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
Hvis alle variable er initialiseret, vil sådanne konstruktioner fungere. Du skal dog ikke misbruge dem, de gør det svært at læse koden. Ikke desto mindre er det meget nyttigt at beskæftige sig med sådanne logiske konstruktioner. Prøv at lave logiske udtryk med andre logiske operatorer angivet i tabellen.

Forrang for logiske operationer

Som i matematik har operatører i programmering en bestemt rækkefølge for udførelse, hvis de forekommer i det samme udtryk. Unære operatorer har fordele i forhold til binære, og multiplikation (selv logisk) frem for addition. Her er logiske operatorer placeret på listen over emner højere, jo højere deres prioritet:
  • !

  • &

  • ^

  • |

  • &&

  • ||

Java boolesk indpakning

I Java har hver primitiv type en "bror", en indpakningsklasse ( Wrapper ). En indpakning er en særlig klasse, der opbevarer værdien af ​​en primitiv indeni. Dette er dog en klasse, så du kan oprette forekomster (objekter) af den. Disse objekter gemmer de nødvendige værdier af primitiver indeni, mens de vil være rigtige objekter. Java boolesk primitiv type har en indpakningsklasse Java Boolean (med stort B). Boolske klasseobjekter oprettes ligesom alle andre:
Boolean b = new Boolean(false);
Java Boolean- klassen har nyttige metoder. En af de mest interessante af disse er den parsebooleske metode. static boolean parseBoolean(String s) metoden analyserer strengargumentet som en boolean. Den returnerede boolean repræsenterer værdien sand , hvis strengargumentet ikke er null og er lig med strengen "true". Ellers returnerer den falsk .

parseBoolean metode eksempel

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"));

        }
    }
Udgangen er:
sandt sandt falsk falsk
For at styrke det, du har lært, foreslår vi, at du ser en videolektion fra vores Java-kursus
Kommentarer
  • Populær
  • Ny
  • Gammel
Du skal være logget ind for at skrive en kommentar
Denne side har ingen kommentarer endnu