# Java-boolien käyttö

Java-boolet ovat yksi ohjelmointikielen [primitiivisten tietotyyppien](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-primitiivit/) joukosta. Booli on totuusarvo, jolla voi olla vain yksi kahdesta mahdollisesta arvosta, yleensä “true” tai “false”. Boolet ovat Java-kielessä useiden komentojen ja toimintojen perusta. Tässä opetusohjelmassa tarkastelemme tarkemmin niiden toimintaa muutaman esimerkin avulla.

## Mitä ovat Java-boolit?

Boolen arvot, jotka on nimetty englantilaisen matemaatikon George Boolein mukaan, ovat algebran elementtejä, jotka kuvaavat muuttujaa, jolla voi olla vain tietty määrä arvoja. Ohjelmoinnissa periaatetta käytetään **logiikan luomiseen** ja sovelluksen suorituksen linkittämiseen ehtoon. Jos ehto täyttyy (eli jos se on tosi), sovellus suoritetaan. Jos ehto ei täyty, sovellusta ei suoriteta.

Ohjelmointikieliä käytettäessä on paljon tilanteita, joissa on vain kaksi mahdollista tilaa. Esimerkkejä ovat vaihtoehdot **päällä ja pois päältä**, vastaukset **kyllä ja ei** sekä arvot **totta ja epätotta**. Ohjelmointikieltä opiskellessa käy nopeasti selväksi, kuinka tärkeitä boolen arvot ovat. On lukemattomia prosesseja, jotka perustuvat ajatukseen, että jompikumpi kahdesta tilasta toteutuu. Näin on esimerkiksi silloin, kun päätetään, suoritetaanko Java-komento tilan perusteella. Boolen arvot ovat tyypillisesti tällaisissa tehtävissä käytetty tietotyyppi.

## Java-boolen luominen

Java-boolen luominen on helppoa. Syntaksi on seuraava:

```java
boolean booleanexample1 = true;
boolean booleanexample2 = false;
```

Seuraavassa perusesimerkissä näemme, kuinka boolen arvo luodaan ja palautetaan. Määritellään kaksi arvoa, yksi totta ja yksi epätotta:

```java
public class Main {
	public static void main(String[] args) {
		boolean x = true;
		boolean y = false;
		System.out.println(x);
		System.out.println(y);
	}
}
```

Tulostus näyttää seuraavalta:

```java
true
false
```

## Java-boolien käyttö if-else-lauseissa

Käytännössä Java-boolenit käytetään yhdessä muiden lauseiden kanssa määrittelemään, että arvioinnin tuloksen on oltava booleninen arvo. Katsotaanpa, miten tämä toimii if-else-lauseiden kanssa.

```java
public class Main {
	public static void main(String[] args) {
		int x = 5;
		int y = 10;
		boolean x1 = true;
		boolean y1 = false;
		if (y > x) {
			System.out.println("The condition is: " + x1);
		}
		else {
			System.out.println("The condition is: " +y1);
		}
	}
}
```

Tässä tapauksessa tulos on:

```java
The condition is: true
```

## Java-boolien käyttö while-silmukassa

Java-boolenit voidaan myös yhdistää while-silmukoihin. While-silmukat suoritetaan niin kauan kuin arvo on tosi. Kun tämä ei enää ole totta, silmukka päättyy.

Esimerkissämme alustamme arvon x arvoksi 10 ja ohjeistamme järjestelmää suorittamaan silmukan, kun arvo on **pienempi tai yhtä suuri kuin 20**. Jokaisella iteraatiolla arvo kasvaa yhdellä, minkä merkitsemme inkrementtioperaattorilla `++`. Näin se näyttää käytännössä:

```java
public class Main {
	public static void main(String[] args) {
		int x = 10;
		while (x <= 20) {
			System.out.println(x);
			x++;
		}
	}
}
```

Tulostus näyttää seuraavalta:

```java
10
11
12
13
14
15
16
17
18
19
20
```

Kun muuttuja x saavuttaa arvon 21, silmukka lopetetaan.

## Boolen lausekkeen käyttö

Monissa tapauksissa boolean-arvon luomisen sijaan voit käyttää **boolean-lauseketta**. Boolean-lausekkeet noudattavat samaa logiikkaa, mutta ovat lyhyempiä ja selkeämpiä. Näimme jo yhden esimerkkinä yllä Java-operaattorin `<=` (pienempi tai yhtä suuri kuin) kanssa.

Seuraavassa esimerkissä kuvitellaan, että koulu julistaa lumipäivän, jos lunta on yli 5 tuumaa. Jos lunta on 5 tuumaa tai vähemmän, koulu pidetään normaalisti. Koodi tälle näyttää seuraavalta:

```java
public class Main {
	public static void main(String[] args) {
		int currentsnow = 3;
		int snowlimit = 5;
		if (currentsnow <= snowlimit) {
			System.out.println("School is in session.");
		} 	else {
			System.out.println("School is canceled.");
		}
	}
}
```

Tulostus näyttää seuraavalta:

```java
School is in session.
```


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-kielen-boolean-primitiivinen-tietotyyppi/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-kielen-boolean-primitiivinen-tietotyyppi/) for AI/LLM consumption.