Observera att detta är en arbetsversion av sidan!
Dölj style3dev.css för att bli av med annoteringarna!

Logiska uttryck

Ett logiskt uttryck är ett uttryck vars värde är true eller false. Sådan uttryck används huvudsakligen i så kallade villkors- och iterations-satser (t ex if- och for-satser) men förekommer bland annat även i tilldelningssatser.

Exempel:

int age = ... boolean teenager = age>12 && age<=19;
som sätter den logiska variabeln till true om age har ett värde i intervallet från 13 till 19,

Det finns operatorer som returnerar logiska värden:

Relationsoperatorerna är:

<   mindre än
<= mindre än eller lika med
== lika med
>= större än eller lika med
> större än
!= skiljt från

De logiska operatorerna är:

!   logiskt icke
&& logiskt och
|| logiskt eller

Relationsoperatorerna har högre prioritet än de logiska operatorerna och av de logiska har ! (icke) högst och || (eller) lägst.
Beräkningsordningen kan styras med med parenteser.
Exempel:

boolean male = ... // true eller false boolean gubbe = male && age >= 50; boolean gumma = !male && age >= 50; boolean x = !(male && age >= 50); // Vilka personer uppfyller detta?

De logiska operatorerna måste alltid ha logiska argument. Om man t ex vill veta att x är större än både a och b kan man alltså inte skriva

if(x > a && b ) ... FEL
utan måste skrivas
if (x > a && x > b) ...

Övningar

  1. Hur kan den sista satsen i exemplet ovan (där x tilldelas värde) skrivas enklare?
  2. Hur kan uttrycket !(a > b && c < d) skrivas utan användning av !-operatorn?
  3. Hur kan man skriva uttrycket
    boolean female = male==false;
    utan relationsoperatorn ==?
  4. Skriv en sats som som simulerar två tärningsslag med en tresidig(!) tärning och sätter den logiska variabeln win till true om båda slagen gav en trea, annars false.

Valid CSS!