Java-wykład. Dorota Pylak



Podobne dokumenty
Dorota Pylak. Aplikacje w Javie- wykład 1

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie obiektowe

1 Podstawy c++ w pigułce.

Wprowadzenie do języka Java

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy programowania skrót z wykładów:

1 Podstawy c++ w pigułce.

Podstawy i języki programowania

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Tworzenie aplikacji w języku Java

JAVA?? to proste!! Autor: wojtekb111111

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Java jako język programowania

Microsoft IT Academy kurs programowania

Wykład 2 Składnia języka C# (cz. 1)

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Ćwiczenie 1. Przygotowanie środowiska JAVA

Programowanie w Javie - wykład 2

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Zmienne, stałe i operatory

Java EE produkcja oprogramowania

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie obiektowe

Podstawy programowania w języku C

Wykład 2: Podstawy Języka

Programowanie obiektowe zastosowanie języka Java SE

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Podstawowe części projektu w Javie

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Powtórka algorytmów. Wprowadzenie do języka Java.

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Część 4 życie programu

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

2 Przygotował: mgr inż. Maciej Lasota

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

WPROWADZENIE DO JĘZYKA JAVA

Podstawy Programowania Podstawowa składnia języka C++

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Język ludzki kod maszynowy

Język C zajęcia nr 11. Funkcje

Programowanie obiektowe

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Programowanie w języku C++ Grażyna Koba

Spis treści. 1 Java T M

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

MATERIAŁY DO ZAJĘĆ II

Podstawy programowania w języku C i C++

2. Składnia, środowisko i konwencje w Javie

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Powtórka algorytmów. Wprowadzenie do języka Java.

Java Język programowania

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

KOTLIN. Język programowania dla Androida

Wykład 4: Klasy i Metody

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Algorytmika i Programowanie VBA 1 - podstawy

Powtórka algorytmów. Wprowadzenie do języka Java.

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Platformy Programistyczne Podstawy języka Java

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Programowanie obiektowe

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Programowanie w Internecie. Java

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

ROZDZIAŁ 2. Operatory

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy Programowania C++

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Podstawy i języki programowania

Programowanie, algorytmy i struktury danych

I - Microsoft Visual Studio C++

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Aplikacje w środowisku Java - wykład 1

Multimedia JAVA. Historia

Programowania w Javie

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Programowanie strukturalne i obiektowe

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Programowanie komputerowe. Zajęcia 1

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Języki i techniki programowania Ćwiczenia 2

( wykł. dr Marek Piasecki )

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Języki skryptowe w programie Plans

Programowanie wieloplatformowe w Java

Transkrypt:

Java-wykład Dorota Pylak

BIBLIOGRAFIA Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 C. S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice 2008 C.S. Horstmann, G. Cornell, Core. Java. Techniki zaawansowane, Helion, Gliwice 2009 B. Eckel, Thinking in Java, 4th Edition, Prentice Hall, Upper Saddle River, NJ, 2006 A. Zoła, Programowanie w języku Java, 2004 http://fatcat.ftj.agh.edu.pl/~palka/public/java_pl.pdf The Java Tutorials, http://download.oracle.com/javase/tutorial/

3 Wstęp W 1995 roku firma Sun Microsystems wprowadziła na rynek nowy język programowania Javę. Java to uniwersalny język programowania składniowo podobny do C/C++ Dziś Java to nie tylko język programowania, ale cały olbrzymi zbiór technologii i produktów z nim powiązanych. Programy napisane w Javie działają na przeróżnych maszynach i systemach poczynając od telefonów komórkowych poprzez komputery PC, a kończąc na wysokowydajnych serwerach.

4 Charakterystyka języka Java PRZENOŚNOŚĆ-WIELOPLATFORMOWOŚĆ Java jest językiem, w którym w przeciwieństwie do standardowych języków kompilowanych, gdzie program źródłowy jest tłumaczony przez kompilator wprost na kod maszynowy, kod źródłowy jest kompilowany na tzw. kod bajtowy (pośredni) i w takiej postaci jest dystrybuowany. Programy Javy w postaci kodu bajtowego nie są związane z żadną konkretną platformą i mogą być uruchamiane na różnych procesorach i systemach operacyjnych.

Charakterystyka Javy 5 KOD ŹRÓDŁOWY (pliki z rozszerzeniem.java) kompilator Javy javac KOD BAJTOWY (B-kod.class) Wirtualna maszyna Javy JVM (program java wraz z odpowiednimi bibliotekami dynamicznymi) zainstalowana na danej platformie systemowej

Charakterystyka Javy 6 Biblioteki standardowe i narzędziowe interfejsy programistyczne (API) JAVY pozwalają w jednolity i niezależny od platformy sposób programować: Graficzne interfejsy użytkownika (GUI) Dostęp do baz danych Działania w sieci Aplikacje WEB Aplikacje rozproszone Grafikę, gry, multimedia Aplikacje na urządzenia mobilne

7 Zestaw standardowych bibliotek wraz z kompilatorem, debuggerem, narzędziami tworzenia dokumentacji JDK (Java Development Kit) JDK uzupełniany w zależności od zastosowań tworzy platformę Javy podzieloną na edycje: Standardowa - JavaStandard Edition (Java SE) Biznesowa - Java Enterprise Edition (Java EE) Mikro - JavaMicro Edition (Java ME) - do programowania urządzeń mobilnych

OBIEKTOWOŚĆ Charakterystyka Javy Java jest językiem obiektowym. Wszystko, z czym mamy do czynienia w programie jest obiektem jakiejś klasy (poza kilkoma typami podstawowymi). W ten sposób podejście obiektowe do programu jest niejako wymuszone. Obiekty w programie odzwierciedlają rzeczywiste obiekty (konkretne lub abstrakcyjne) i charakteryzują się cechami (atrybutami, polami) operacjami, które można na nich wykonywać (metodami) KLASA to opis cech grupy podobnych obiektów, które są dla nich niezmienne. 8

BEZPIECZEŃSTWO Charakterystyka Javy Bezpieczeństwo konstrukcji językowych Automatyczne odśmiecanie (garbage collection) - automatyczne usuwanie przydzielonych wcześniej, a nie używanych już obszarów pamięci (Język Java nie udostępnia w ogóle pojęcia wskaźników. Operujemy na referencjach do obiektów, nie martwiąc się o przydzielanie pamięci czyni to konstruktor, ani o zwalnianie zasobów czyni to Garbage Collector) Kontrola zgodności typów na etapie kompilacji Wymuszona przez kompilator obsługa niektórych wyjątków (obsługa błędów w Javie jest realizowana za pomocą wyjątków, przy czym jeżeli w wywoływanej metodzie może zostać wyrzucony wyjątek, jego obsłużenie jest wymuszone (poza RuntimeExceptions)) 9

10 Charakterystyka Javy Bezpieczeństwo transmisji danych oraz ochrona informacji Java posiada zintegrowane z językiem mechanizmy pozwalające na wszechstronne zabezpieczanie pisanych programów np.: pakiety JAAS (Java Authentication and Authorization Services) pozwalają na elastyczne uwierzytelnianie użytkowników chcących pracować w systemie, a następnie kontrolowanie jakie operacje mogą być wykonywane w trakcie działania programu na rzecz uwierzytelnionego już użytkownika wbudowane mechanizmy szyfrowania przesyłanych danych (jak np. SecureSocket) oraz cała gama zaimplementowanych i gotowych rozwiązań kryptografii (uwierzytelnianie poprzez certyfikaty, podpisy cyfrowe) pliki security.policy pozwalają decydować, które klasy pochodzące z jakich lokalizacji i podpisane cyfrowo przez kogo maja mieć dostęp do zasobów

Charakterystyka Javy 11 SIECIOWOŚĆ Język Java był od początku projektowany jako język programowania dla Internetu. Stąd mamy w nim wbudowane wygodne w obsłudze mechanizmy obsługi sieci, np. czytanie z gniazda sieciowego jest realizowane, z punktu widzenia programu, tak samo jak z klawiatury, a pomiędzy korzystaniem z pliku znajdującego się na dysku i na serwerze sieciowym nie ma praktycznie żadnej różnicy.

Charakterystyka Javy 12 OTWARTOŚĆ Dzięki temu, że standard języka jest otwarty, a JDK dostępny za darmo, tysiące ludzi na całym świecie pracuje, by wnieść swój wkład w rozwój tego języka. Dlatego język jest żywy, a jego rozwój nie ogranicza się tylko do kilkudziesięciu osób z firmy produkującej kompilator, ale jego twórcy mogą czerpać z doświadczeń wielu profesjonalistów i naukowców, by wybrać i zaadoptować w następnych wersjach najlepsze rozwiązania

PIERWSZY PROGRAM 13 Pierwszy program Pobieramy z internetu aktualną wersję JDK wraz z dokumentacją (http://java.sun.com) Do pisania programów możemy używać zintegrowanych środowisk programowania IDE (np. NetBeans, Eclipse) lub nawet wybranego edytora tekstowego Program źródłowy zapisujemy w pliku lub plikach z rozszerzeniem.java (każdy musi zawierać pełną definicję jednej lub więcej klas) Nazwa pliku musi być taka sama jak nazwa klasy publicznej występującej w tym pliku (ze specyfikatorem public) (rozróżniamy wielkość liter)

PIERWSZY PROGRAM 14 public class Test{ public static void main(string[] args){ System.out.println( Witaj Javo ); } } Zauważmy, że program w Javie zawsze składa się z definicji klasy. Do definiowania klas służy słowo kluczowe class, po nim podajemy nazwę klasy. Definicję klasy (pola i metody) podajemy w występujących potem nawiasach {}. W klasie Test zdefiniowano metodę main, wykonanie programu zaczyna się właśnie od tej metody.

PIERWSZY PROGRAM public static void main(string[] args) Jest to nagłówek funkcji o nazwie main i następujących modyfikatorach: public oznacza, ze funkcja jest publiczna, tzn. dostępna z zewnątrz klasy. Musi taka być, aby JVM działająca na zewnątrz klasy mogła ją uruchomić static funkcja jest statyczna, tzn. może być wywołana dla klasy, nie tylko dla konkretnego jej obiektu. Dzięki temu JVM nie musi tworzyć obiektu naszej klasy, może po prostu wywołać jej metodę main. Tę właśnie metodę JVM próbuje wywołać zawsze kiedy uruchamiamy ją poleceniem java JakasKlasa. Słowo void nie jest modyfikatorem, ale typem zwracanym przez funkcję. Oznacza ono pusty, bez wyniku. 15

PIERWSZY PROGRAM 16 public static void main(string[] args){ System.out.println( Witaj Javo );} W nawiasach widzimy String[]. Jest to tablica elementów klasy String służącej do przechowywania łańcuchów znakowych (napisów). Tablica ta zawiera parametry wywołania programu (np. z linii poleceń) Za wypisywanie na standardowe wyjście odpowiadają metody obiektu out będącego polem statycznym standardowej klasy System odpowiadającej za komunikację z systemem. Obiekt out posiada m.in. metodę println(string s), która wypisuje przekazany jej obiekt klasy String, po czym przechodzi do nowej linii Witaj Javo to stała łańcuchowa typu String

PIERWSZY PROGRAM 17 Zapisujemy program w pliku źródłowym Test.java Zapisany program kompilujemy za pomocą javac Test.java (lub w IDE) Otrzymujemy plik binarny Test.class Uruchamiamy program w IDE lub pisząc java Test (uruchamiając maszynę wirtualną polecenie java, podajemy jako argument samą nazwę klasy w której zdefiniowana jest metoda main, bez rozszerzenia.class)

KOMENTARZE //komentarz jednowierszowy /*komentarz wielowierszowy*/ /**komentarz dokumentacyjny*/ (komentarze dokumentacyjne są przetwarzane przez oprogramowanie tworzące dokumentacje np. javadoc ) Nazwy zmiennych, metod, klas mogą zawierać litery (duże lub małe), cyfry oraz znali _ i $, przy czym nie mogą zaczynać się od cyfry. 18

TYPY PODSTAWOWE TYP Rozmiar Zakres Klasa opakowująca Całkowitoliczbowe byte 8 bitów -128 : 127 Byte short 16-32768 : 32767 Short int 32-2 mld : 2 mld Integer long 64-9 tryl. : 9 tryl. Long Zmiennoprzecinkowe float 32-3.4E38...+3.4E38 Float double 64-1.7E308...1.7E308 Double Znakowy char 16 \u0000 : \u8fff Character Logiczny boolean - true:false Boolean Pusty void - - Void 19

LITERAŁY 20 LITERAŁ to napis w programie reprezentujący w sposób bezpośredni wartość danej. Tak, więc: 1, 1.5,'a', tekst są literałami odpowiednio liczbowymi, znakowymi i łańcuchowymi. Wszystkie literały całkowitoliczbowe są typu int. Każda liczba rzeczywista zapisana literalnie (zapisana z. lub w notacji naukowej) jest typu double. Aby zdefiniować liczbę typu long dodajemy L lub l na końcu. Użycie f lub F, powoduje traktowanie liczby jako typu float Napis true lub false to literał typu boolean Liczby całkowite możemy zapisać np. w systemie szesnastkowym, poprzedzając liczbę frazą 0x lub 0X

LITERAŁY c.d. 21 Pojedyncze znaki w apostrofach to literały znakowe typu char. Zwróćmy uwagę, że znaki w Javie zapisywane są w Unicodzie (z Basic Multilingual Plane) i zajmują 2 bajty. Przy pomocy backslasha \ zapisujemy znaki specjalne np.\n,\t, \b, \', \, \\ \unnnn dowolny znak o kodzie NNNN (N-cyfra szesnastkowa) Literały łańcuchowe oznaczają obiekty klasy String (String nie jest typem podstawowym), np. Witaj. Wszystkie inne dane poza danymi typów prostych reprezentują obiekty, których atrybuty i funkcjonalność definiują określone klasy. Są to typy zwane referencyjnymi.

ZMIENNE 22 Zmienna to nazwana część pamięci służąca do przechowywania informacji Deklaracja zmiennej nazwa_typu nazwa_zmiennej; Inicjacja zmiennej nazwa_typu nazwa_zmiennej=wyrażenie; Deklaracja stałych. (Wartość stałej można ustalić tylko raz) final nazwa_typu nazwa_stałej[=wyrażenie]; Konwencje nazewnicze nazwy zmiennych, metod zaczynamy mała literą, a następnie każdy składnik wyróżniamy dużą literą np. polefigury nazwy klas każdy składnik dużą literą np. StringBuilder nazwy stałych kapitalikami np. PI

23 OPERATORY W Javie dysponujemy zestawem operatorów podobnym do tego z C/C++: Jednoargumentowe - zmiana znaku + potwierdzenie znaku (nic nie robi) ++ pre/postinkrementacja (zwiększenie o 1) -- pre/postdekrementacja (zmniejszenie o 1) Arytmetyczne * mnożenie / dzielenie (całkowite lub zmiennopozycyjne!) % modulo (reszta z dzielenia) + dodawanie - odejmowanie

OPERATORY c.d. Przesunięcia >> przesuniecie bitowe w prawo << przesuniecie bitowe w lewo >>> przesuniecie bitowe w prawo z uzupełnianiem zerami Relacji == równe!= różne < mniejsze > większe <= mniejsze lub równe >= większe lub równe Operator warunkowy? : arytmetyczne if-else Operatory przypisania = przypisanie op= złożony operator przypisania 24

25 OPERATORY c.d. Logiczne i bitowe && logiczne i logiczne lub & logiczne i bitowe i logiczne i bitowe lub ^ logiczne i bitowe XOR Uwaga. W przypadku pojedynczych & oraz obliczane są zawsze obie strony wyrażenia, natomiast w wersji && oraz następuje pewna optymalizacja, tzn. jeśli po obliczeniu lewej strony znany jest wynik całego wyrażenia, wówczas prawa strona nie jest obliczana. Uwaga 2. Złożony operator przypisania ma następujące działanie: a op= b; jest równoważne: a = a op b;

26 OPERATORY c.d. Uwaga 3. Operator? : ma następująca składnie: wyrazenielogiczne? wartosc1 : wartosc2 gdzie zmienne (lub wyrażenia) wartosc1 i wartosc2 muszą być wyrażeniami tego samego typu. Jeśli wyrazenielogiczne ma wartość true operator zwraca wartosc1 w przeciwnym wypadku wartosc2. Uwaga 4. Dla obiektów działają tylko operatory = (przypisanie), == (równe) oraz!= (rożne). Działają one jednak na referencjach, a nie na zawartości obiektów. Uwaga 5. Dla klasy String działają również operatory + i += i to z dowolnymi argumentami. Uwaga jednak na kolejność Np.: String s = "a"; int a = 1, b = 2; System.out.println(s + a + b); // wypisze "a12" System.out.println(a + b + s); // wypisze "3a"

27 OPERATORY c.d. Przypisania i porównania działają nie bezpośrednio na obiektach, ale na referencjach. Przykład 1 String s1 = "coś", s2 = "co"; s2 += "ś"; System.out.println(s1 + " == " + s2 + ": " + (s1 == s2)); // wypisze "coś == coś: false" //s1 i s2 to takie same napisy, //ale operator == sprawdza, //czy są to te same napisy

28 OPERATORY c.d. Przykład 2 class Test { } public int i; public static void main(string[] args) { Test t1, t2; t1 = new Test(); // inicjalizacja t2 = t1; t1.i = 1; t2.i = 2; System.out.println(t1.i); // wypisze 2 } Po przypisaniu t2 = t1 zmienne t1 i t2 reprezentują ten sam obiekt. Jeden obiekt.

29 OPERATORY c.d. Do porównywania obiektów (wartości, nie referencji) służy metoda equals(). Przypisanie wartości jest bardziej skomplikowaną sprawą. Przykład użycia metody equals(): String s1 = "coś", s2 = "co"; s2 += "ś"; System.out.println(s1 + "==" + s2 + (s1.equals(s2))); // wypisze "coś == coś: true"

OPERATOR KONWERSJI TYPU Zmiana typu wyrażenia- konwersja (rzutowanie) Operator konwersji (rzutowania) ma postać: (nazwa_typu) wyrażenie gdzie nazwa_typu oznacza typ do jakiego jest przekształcany aktualny typ wyrażenia int n=7; double x=(double)n/5;//dzielenie rzeczywiste W trakcie obliczania wartości wyrażeń arytmetycznych dokonywane są automatyczne konwersje (promocje numeryczne) Dla operatorów dwuargumentowych: Jeśli jeden z argumentów jest typu double, to drugi jest przekształcany do double W przeciwnym razie, jeśli jeden jest float, to drugi konwertuje się do float W przeciwnym razie, jeśli jeden jest long, to drugi do long W przeciwnym razie, oba argumenty są konwertowane do int 30

INSTRUKCJE STERUJĄCE 31 Instrukcje sterujące występujące w Javie są bardzo podobne do tych znanych z języka C/C++. Istnieje właściwie tylko jedna ważna różnica: Java nie pozwala na użycie liczby tam, gdzie oczekuje wartości logicznej. Każde wyrażenie logiczne, (np. a==b) jest typu boolean.

32 if-else if (wyrazenie) instrukcja1; lub if (wyrazenie) instrukcja1; else instrukcja2; Wyrażenie musi być typu logicznego (boolean), a poprzez instrukcje rozumiemy dowolną instrukcję, czyli w szczególności złożoną tj. instrukcję postaci: {instrukcja_1;... instrukcja_n;} Jeżeli wyrażenie jest prawdziwe (ma wartość true) to wykonywana jest instrukcja1. W przeciwnym przypadku wykonywana jest instrukcja znajdująca się po else, o ile istnieje.

while, do-while 33 while(wyrazenie_logiczne) instrukcja; instrukcja jest powtarzana, dopóki wyrażenie_ logiczne jest prawdziwe. Obliczenie wartości wyrażenia następuje przed każdym kolejnym wykonaniem instrukcji. (Czyli możliwa jest sytuacja, gdy instrukcja nie zostanie wykonana ani razu) do instrukcja while(wyrazenie_logiczne) Pętla różniąca się od poprzedniej tylko tym, ze najpierw wykonywana jest instrukcja, a dopiero później liczona wartość wyrażenia logicznego. (Czyli instrukcja zostaje wykonana co najmniej jeden raz). Pętla jest powtarzana dopóki wyrazenie_logiczne ma wartość true.

for 34 for(inicjalizacja; wyr_log; krok) instrukcja; inicjalizacja zostaje wykonana raz, przed rozpoczęciem działania pętli. Następnie, przed każdym obrotem pętli obliczana jest wartość wyr_log. Jeśli jest ono prawdziwe wykonywana jest instrukcja, a po niej krok. W przeciwnym wypadku następuje wyjście z pętli. Każde z pól: inicjalizacja,wyr_log, krok może być puste. Dodatkowo pola inicjalizacja i krok mogą zawierać kilka instrukcji oddzielonych przecinkami. Zasięg zmiennych deklarowanych w części inicjacyjnej kończy się wraz z końcem instrukcji for

35 for-each for(typ zm : zestaw) instrukcja; Pętla for-each wykonuje instrukcje, dla każdego elementu zestawu. Pętla ta służy do przebiegania po zestawach danych (np. kolekcjach, tablicach, plikach). Przykład: String[]alfabet={ a, b, c, d, e }; for(string s: alfabet) System.out.println(s); //wypisze w kolejnych wierszach a,b,c,d,e.

break, continue 36 Wewnątrz każdej pętli możemy zastosować instrukcje break oraz continue. Służą one do sterowaniem wykonania pętli z jej środka. Instrukcja break powoduje natychmiastowe wyjście z pętli Instrukcja continue natomiast rozpoczyna następną iterację tej pętli (nie dokańczając aktualnie wykonywanej).

Polecenia : continue i break z etykietami break z etykietą - wyjście z pętli w dowolnym momencie ZewnetrznaPetla;//etykieta for (...) {... break ZewnetrznaPetla;... } continue z etykietą ominięcie części poleceń pętli etykieta; while (...) {... continue etykieta;... } 37

switch 38 Instrukcja switch zwana czasem instrukcją wielokrotnego wyboru. Na podstawie wartości wyrażenia wyr wybiera i wykonuje odpowiedni fragment kodu. Wyrażenie wyr może być jednego z typów całkowitych lub typu char, Character, String lub dowolnego typu wyliczeniowego (enum). (Jeśli wyr jest typu referencyjnego, to do porównania używana jest metoda equals()) switch(wyr){ case wyr_stale_1: instrukcja1; break; case wyr_stale_2: instrukcja2; break;... case wyr_stale_k: instrukcjak; break; default: instrukcja_domyslna;}