Instrukcja warunkowa if, instrukcja złożona code block

java10.jpgInstrukcja warunkowa w języku Java wygląda następująco:

if (warunek – koniecznie w nawiasach okrągłych) instrukcja

java1

Często w Javie wykonuje się wiele instrukcji (tzw. blok instrukcji) po spełnieniu jednego warunku, np.:

java2

Jeśli zmienimy warunek (będzie on nieprawdziwy) jak w przykładzie poniżej, instrukcje nie zostaną spełnione:

java3

W poniższym przykładzie:

java4

użyto „else„, które przekazuje Javie, że w każdym innym przypadku wydrukuj „Got here”. W powyższym przykładzie score<5000 nie jest zgodny z zadeklarowaną wcześniej wartością, dlatego też została spełniona druga instrukcja.

Jeśli napiszemy w warunku:

java5

wówczas zostaje spełniona instrukcja pierwsza, druga nie jest wykonywana.

W poniższym przykładzie:

java6

dwie pierwsze instrukcje nie spełniają warunku, dlatego też wyświetlona zostaje trzecia instrukcja.

W poniższym przykładzie instrukcja została wykonana, ponieważ zmienna gameOver była zadeklarowana jako true i pod takim tylko warunkiem miał się wyświetlić podany tekst.

java7

Code block – blok kodu (instrukcja złożona)

Jest to zgrupowanie dwóch lub więcej instrukcji zamkniętych w {}. Jeśli tworzymy zmienne wewnątrz bloku trzeba pamiętać,  że ma on dostęp do zmiennych utworzonych poza blokiem. W powyższym przykładzie zmienne: score, levelCompleted, bonus były utworzone poza blokiem, podczas gdy finalScore był utworzony wewnątrz bloku.

Natomiast nie możemy użyć na zewnątrz zmiennej utworzonej wewnątrz bloku, gdyż jest ona po przetworzeniu danego bloku kodu automatycznie kasowana. Wyskakuje nam w IntelliJ błąd:java8

Pojęcie zmiennych wewnątrz bloku kodu jest nazywane zakresem (scope). Określa  dostępność zmiennych w wyznaczonych sytuacjach.

Zadanie.

Wyświetl drugi wynik na ekranie zgodnie z poniższymi wytycznymi:

score = 10000

levelCompleted = 8

bonus = 200

Upewnij się, że twój  wydruk: „Your final score was 1300” pozostaje nadal wyświetlony na ekranie.

Moje rozwiązanie:

java9

Rozwiązanie alternatywne:

Nie trzeba wprowadzać nowych zmiennych, można zmienić wartości zadeklarowanych wcześniej zmiennych:

java10