Laboratorium z informatyki sem.II/ćw.5 Wydział Transportu PW 2020/21
Materiały do użytku wewnętrznego strona 1
M
ATERIAŁY POMOCNICZE DO ĆWICZENIA5 Zagnieżdżone instrukcje for
Instrukcje for można zagnieżdżać, czyli w pętli zewnętrznej można umieszczać pętle wewnętrzne na wielu poziomach zagnieżdżenia, W czasie każdej kolejnej iteracji pętli zewnętrznej, pętla wewnętrzna będzie wykonana pełną liczbę razy. Wykorzystując pętle zagnieżdżone można przeglądać tablice dwu- i wielowymiarowe. W pętli wewnętrznej nie można deklarować zmiennej sterującej o tej samej nazwie co zmienna sterująca pętlą zewnętrzną. W programie do przeglądania dwuwymiarowej tablicy w wierszami zastosowaliśmy zagnieżdżone instrukcje for:
for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { // operacje dla elementu w[i][j]
} }
Konwersja typów liczbowych
W przypadku gdy zmiennej typu double przypisujemy wartość całkowitą, zamiana tej wartości całkowitej na typ rzeczywisty jest dokonywana automatycznie. W przypadku przeciwnym, gdy zmiennej typu całkowitego chcemy przypisać wartość wyrażenia, która jest liczbą rzeczywistą, konieczna jest jawna konwersja typu (rzutowanie). Operacja ta wymaga umieszczenia przed wyrażeniem nazwy typu docelowego w nawiasach okrągłych. Na przykład, aby
wygenerować i wpisać do tablicy w typu int całkowitą liczbę losową zastosowaliśmy instrukcję:
w[i][j] = (int)(30*Math.random()-15);
W wyniku takiej konwersji typu double na typ int zawsze jest obcinana część dziesiętna liczby rzeczywistej. Jeśli wartość rzeczywista ma być zaokrąglona do najbliższej liczby całkowitej, można oprócz rzutowania zastosować metodę
round() klasy Math. Na przykład, konwersję zmiennej d typu double na typ int z zaokrągleniem, można zapisać:
int x = (int) Math.round( d );
Instrukcja wyboru switch
Instrukcja switch umożliwia wybór i wykonanie jednej z kilku zawartych w niej instrukcji, zależnie od wartości wyrażenia. Instrukcja switch ma postać:
switch (wyrażenie) { case wartość1 : Instrukcja1; break;
case wartość2 : Instrukcja2; break;
...
default Instrukcja;
}
Jeśli wyrażenie sterujące wyborem ma jedną z wymienionych w case wartości, to wykonywana jest odpowiednia instrukcja. Jeżeli nie zostanie odnaleziona żadna klauzula case odpowiadająca wartości wyrażenia, wówczas
wykonywane są instrukcje zawarte w klauzuli default, która jest opcjonalna i może być pominięta. Na końcu każdej klauzuli case należy umieścić polecenie break, które przerwie wykonywanie bloku switch.
Znaki specjalne
W typie char oprócz znaków ASCII (np ‘a’) występują znaki specjalne, zbudowane jako sekwencja znaków tzw. escape sequence, rozpoczynająca się od znaku \ (backslash).
Sekwencja Znaczenie
\t Znak tabulacji
\n Znak nowej linii
\r Powrót karetki
\f Znak nowej strony
\b Cofnięcie o jeden znak
\' Apostrof
\" Cudzysłów
\\ Lewy ukośnik
\udddd znak Unicode o podanym kodzie (d – cyfra szesnastkowa)
Znaków specjalnych można używać w literałach łańcuchowych. Literałem łańcuchowym jest ciąg znaków
zapisany bezpośrednio w programie, w cudzysłowach w jednym wierszu. Na przykład w ćwiczeniu
zastosowaliśmy sekwencją znaków specjalnych
"\r\n"reprezentującą powrót karetki i znak nowego wiersza.Laboratorium z informatyki sem.II/ćw.5 Wydział Transportu PW 2020/21
Materiały do użytku wewnętrznego strona 2
Wykorzystaliśmy też
znak specjalny (Unicode) aby wyświetlić symbol ♥ .
UNICODE jest standardem kodowania znaków na dwu bajtach, pozwalającym na zdefiniowanie 65536 znaków, W poniższej tabeli zestawiono przykłady znaków Unicode:
Litera Kod Unicode Litera Kod Unicode
Ą 0104 Ó 00D3
ą 0105 ó 00F3
Ć 0106 Ś 015A
ć 0107 ś 015B
Ę 0118 Ź 0179
ę 0119 ź 017A
Ł 0141 Ż 017B
ł 0142 ż 017C
∏ 220F ♥ 2665
☺ 263A ♦ 2666
∑ 2211 ♣ 2663
2