Laboratorium z informatyki sem.II/ćw.3 Wydział Transportu PW 2020/21
Materiały do użytku wewnętrznego strona 1
M
ATERIAŁY POMOCNICZE DO ĆWICZENIA3 Instrukcja warunkowa if
Instrukcja ta daje możliwość sprawdzenia szeregu warunków.
Postać instrukcji: if (warunek){//instrukcje1 } else {//instrukcje2 }
Część else jest opcjonalna, tzn. może występować lub nie.
Wyrażenia logiczne można przypisywać zmiennym typu boolean. Ich wartością może być true lub false. Proste wyrażenia logiczne konstruuje się za pomocą operatorów relacji:
< (czy mniejsze), > (czy większe),
<= (czy mniejsze równe), >= (czy większe równe),
== (czy równe), != (czy różne).
Do budowy bardziej złożonych wyrażeń używa się operatorów logicznych:
&& (koniunkcji – logiczne AND), np.: if(warunek1 && warunek2)...
|| (alternatywy – logiczne OR), np.: if(warunek1 || warunek2)...
! (negacji – logiczne NOT). np.: if (!warunek)...
Instrukcja for
Instrukcja iteracyjna ma poniższą postać, przy czym:
for(wyr1; war; wyr2) { //instrukcje }
Przykład:
for(int i=0; i<10; i++) {
System.out.println("i = " + i);
}
gdzie: ++ operator inkrementacji ( zwiększenia wartości o 1)
Formatowanie liczb dziesiętnych
Do formatowania tekstowej reprezentacji liczb w Javie można wykorzystać klasę NumberFormat zawierającą wzorce i metody formatowania wartości liczbowych, walutowych i dat. Dla liczb rzeczywistych można określić ilość miejsc dziesiętnych za pomocą obiektu klasy DecimalFormat i metody format(). Tworząc obiekt klasy DecimalFormat
podajemy wzorzec zawierający symbole, które opisują format tekstowego zapisu liczby dziesiętnej. Są to między innymi:
0 – cyfra
# - cyfra z pominięciem nieznaczących zer . – separator dziesiętny
Aby sformatować wartość zmiennej rzeczywistej s z dwiema cyframi dziesiętnymi można zastosować instrukcje:
NumberFormat f= new DecimalFormat("0.##");
System.out.println(f.format( s );
Generowanie liczb losowych o rozkładzie równomiernym
Liczby losowe całkowite lub rzeczywiste o rozkładzie równomiernym można generować za pomocą metody
random() klasy Math. Funkcja random() generuje rzeczywistą liczbę
pseudolosową
(typu double) z zakresu <0.0, 1.0)Liczby losowe rzeczywiste z przedziału (A, B) można uzyskać stosując wzór:
A + ( B-A )* Math.random()
Liczby losowe całkowite z przedziału domkniętego <K, L> można uzyskać stosując wzór:
(int) (K +( L+1-K )* Math.random ())
W tym wzorze (int) oznacza operację rzutowania wartości rzeczywistej na typ całkowity. Wynik rzutowania powstaje przez obcięcie części dziesiętnej liczby rzeczywistej.
warunek jest tu wyrażeniem logicznym. Jeśli warunek
daje w wyniku true, to wykonywane są instrukcje1.
Jeśli występuje część else, to gdy warunek daje w wyniku false, wykonywane są instrukcje2.
1. jednorazowo wyliczane jest wyrażenie wyr1 (tu może pojawić się deklaracja zmiennych, wraz z inicjalizacją),
2. każdorazowo przed wejściem do (bloku) instrukcji sprawdzany jest warunek war i jeśli jego wartość jest true, wykonywane są instrukcje, w
przeciwnym przypadku następuje koniec pętli for, 3. po wykonaniu (bloku) instrukcji wyliczane jest
wyrażenie wyr2.