Instrukcje sterowania
• Instrukcje decyzyjne
– Instrukcja if – then
– Instrukcja if – then – else
– Instrukcja switch
• Pętle
– Pętla for
– Pętla while
– Pętla do – while
• Instrukcje “skoku”
– break
– continue
– return
Instrukcje sterowania
• Instrukcja if – then
• Pozwala wykonad dany fragment kodu tylko jeśli pewien
warunek jest spełniony
Instrukcje sterowania
Jaki będzie wynik?
Instrukcje sterowania
Jaki będzie wynik?
Instrukcje sterowania
Jaki będzie wynik?
Instrukcje sterowania
Należy pamiętad o nawiasach!
Instrukcje sterowania
• if – then – else
– else – pozwala wykonad fragment kodu jeśli (tylko
jeśli !) warunek nie jest spełniony
Co zostanie wypisane ?
Instrukcje sterowania
• Bardziej rozbudowany przykład
Zadanie
Totolotek 3
Wygeneruj i zapisz do tablicy 6 losowych liczb z
przedziału *1, 49+. Wygeneruje dodatkową
liczbę losową i porównaj ją z każdą wartością z
tablicy wypisując informację, czy jest ona
większa, mniejsza czy równa.
Instrukcje sterowania
• switch – przekierowuje wykonywanie
programu do pasującej etykiety
– Uwaga! Program wykonuje wszystko poniżej
dopasowanej etykiety, jeśli nie zastosuje się break
Instrukcje sterowania
wykonywane jeśli nie pasuje
żadna inna etykieta (nie jest
obowiązkowe)
Instrukcje sterowania
Instrukcje sterowania
poprawnie
Instrukcje sterowania
• W switch może wystąpid
– byte
– short
– char
– int
– enum (typ wyliczeniowy)
– Character, Byte, Short, Integer
– String (od wersji Javy 7 ! )
Instrukcje sterowania
Uwaga na wielkośd liter!
Zadanie
Zapytaj użytkownika o imię. Program zna trzy osoby o imionach:
Wiktor, Maryla oraz Cyryl. Jeśli użytkownik podał jedno z tych
imion, program pozdrawia go tym imieniem. Jeśli użytkownik
podał inne imię, program odpowiada, że nie zna takiej osoby.
Zastosuj konstrukcję switch.
Skorzystaj z poniższego przykładu by porównad Stringi :
Instrukcje sterowania
• Pętla while
Nieskooczona pętla - konieczne jest zmiana
warunku podczas którejś z kolejnych iteracji.
Instrukcje sterowania
Instrukcje sterowania
krótsza wersja działająca tak samo
Instrukcje sterowania
• Pętla do-while
Instrukcje sterowania
Uwaga! Warunek jest sprawdzany po raz
pierwszy po zakooczeniu pierwszej iteracji!
Zadanie
Zapytaj użytkownika o imię. Program zna trzy osoby o imionach:
Wiktor, Maryla oraz Cyryl. Jeśli użytkownik podał jedno z tych
imion, program pozdrawia go tym imieniem.
Jeśli użytkownik podał inne imię, program odpowiada, że nie zna
takiej osoby i ponownie pyta o imię, aż użytkownik poda jedno ze
znanych programowi imion. Wtedy pozdrawia i kooczy swoje
działanie
Zastosuj konstrukcję switch oraz pętlę while.
Instrukcje sterowania
• Pętla for
– Inicjalizacja – wykonywana raz, przed pierwszą iteracją
– Warunek koocowy – sprawdzany przed każdą iteracją
(również przed pierwszą), niespełnienie go powoduje
zakooczenie pętli for
– Inkrementacja – wykonywana po zakooczeniu każdej
iteracji, przed sprawdzaniem warunku koocowego
for( inicjalizacja ; warunek_koncowy; inkrementacja ) {
//instrukcje do wykonania
}
Instrukcje sterowania
również poprawne
Instrukcje sterowania
Żaden z trzech elementów nie jest obowiązkowy
Nieskooczona pętla !
Instrukcje sterowania
Instrukcje sterowania
Przerwanie pętli
Instrukcje sterowania
• Pętla for dla tablic
x: tymczasowa zmienna przyjmująca kolejne wartości z tablicy
Instrukcje sterowania
Zadanie
Zapytaj użytkownika o imię. Program zna sześd osób o imionach:
Marek, Kasia, Stefan, Wiktor, Maryla oraz Cyryl.
Jeśli użytkownik podał jedno z tych imion, program pozdrawia go
tym imieniem. Jeśli użytkownik podał inne imię, program
odpowiada, że nie zna takiej osoby.
•Przechowuj znane imiona w tablicy Stringów
•W celu sprawdzenia, czy podane imię jest znane, wykorzystaj
pętlę for
Instrukcje sterowania
• break – przerywa pętle for, while, do-while,
switch
• Występuje
– bez etykiety
– z etykietą
Instrukcje sterowania
Instrukcje sterowania
break z etykietą (mojaEtykieta)
Po 'break' sterowanie przekazane
w miejsce po etykietowanej
instrukcji (nie do etykiety!)
Zadanie
Zapytaj użytkownika o imię. Program zna sześd osób o imionach:
Marek, Kasia, Stefan, Wiktor, Maryla oraz Cyryl.
Jeśli użytkownik podał jedno z tych imion, program pozdrawia go
tym imieniem. Jeśli użytkownik podał inne imię, program
odpowiada, że nie zna takiej osoby.
• Przechowuj znane imiona w tablicy Stringów
• W celu sprawdzenia, czy podane imię jest znane, wykorzystaj
pętlę for
• Przerwij pętlę for w momencie natrafienia na zgodnośd
podanego imienia z jednym ze znanych w tablicy
Instrukcje sterowania
• continue – kooczy (przerywa) tylko aktualną
iterację pętli (for, while, do-while) i przechodzi
do następnej
– bez etykiety
– z etykietą
Instrukcje sterowania
bez etykiety
Instrukcje sterowania
Podwójna pętla - bez continue
Instrukcje sterowania
continue bez etykiety przerwie iterację
najbardziej wewnętrznej zwierającej je pętli
Instrukcje sterowania
continue z etykietą przerwie iterację
odpoweidniej, wskazanej przez etykietę pętli
Instrukcje sterowania
• return
– opuszcza aktualną metodę
– sterowanie przekazane w miejsce wywołania tej
metody
– może zwracad wartośd, ale nie musi
Instrukcje sterowania
Zadanie
Totolotek 4
Wygeneruj i zapisz do tablicy 6 losowych liczb z przedziału *1, 49+. Wypisz
wartości z tablicy za pomocą pętli for. Poproś użytkownika o podanie
jednej liczby. Sprawdź za pomocą pętli for oraz instrukcji if, czy dana
wartośd jest w tablicy. Zastosuj break w odpowiednim miejscu
(znalezienie liczby).
Zadanie
Totolotek 5
Napisz metodę, która sprawdza, czy dana wartośd jest obecna w tablicy.
Metoda zwraca wartośd true lub false.
Wykorzystująd powyższą metodę, wygeneruj i zapisz do tablicy 6
losowych NIEPOWTARZAJACYCH SIĘ liczb z przedziału *1, 49+. Wypisz
wartości z tablicy za pomocą pętli for. Poproś użytkownika o podanie
jednej liczby. Sprawdź za pomocą pętli for oraz instrukcji if, czy dana
wartośd jest w tablicy. Zastosuj break.
Zadanie
Totolotek 6
Poproś użytkownika o podanie 6 NIEPOWTARZAJĄCYCH SIĘ liczb i zapisz je do
tablicy. Wygeneruj i zapisz do innej tablicy 6 losowych NIEPOWTARZAJACYCH SIĘ
liczb z przedziału *1, 49+. Wypisz wartości z obu tablic. Sprawdź wygraną
użytkownika.
Totolotek 7
Poproś użytkownika o podanie 6 NIEPOWTARZAJĄCYCH SIĘ liczb i zapisz je do
tablicy. Wygeneruj i zapisz do innej tablicy 6 losowych NIEPOWTARZAJACYCH SIĘ
liczb z przedziału *1, 49+. Wypisz wartości z obu tablic. Sprawdź wygraną
użytkownika. Powtarzaj losowanie nowych 6 liczb i za każdym razem sprawdzaj
wygraną użytkownika dla tych samych jego liczb. Za którym razem następuje
wygrana?