Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
1 / 55
Programowanie obiektowe
Podstawy j
ę
zyka Java
Paweł Rogali
ń
ski
Instytut Informatyki, Automatyki i Robotyki
Politechniki Wrocławskiej
pawel.rogalinski
pwr.wroc.pl
@
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
2 / 55
Podstawowe elementy j
ę
zyka
Komentarze
słowa kluczowe
Identyfikatory
Typy danych
Literały
Operatory
Instrukcje warunkowe
Instrukcje iteracyjne
Instrukcje skoku
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
3 / 55
Komentarze w Javie
Komentarz wierszowy
// Program wypisuj
ą
cy tekst powitania
Komentarz blokowy
/* Program wypisuj
ą
cy tekst powitania
Warszawa, 13 listopada 2002 r.
*/
Komentarz dokumentacyjny
/**
* Klasa rysuj
ą
ca wykres. Typ wykresu
* zale
ż
y od naci
ś
ni
ę
tego przycisku.
*
@
version 1.0
*/
class Wykres {...
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
4 / 55
Tworzenie dokumentacji
Do opisu fragmentów kodu
ź
ródłowego programu u
ż
ywa si
ę
komentarzy. Na ich
podstawie, u
ż
ywaj
ą
c programu
javadoc
mo
ż
na pó
ź
niej wygenerowa
ć
dokumentacj
ę
.
Najcz
ęś
ciej opisuje si
ę
elementy takie jak
klasy
,
interfejsy
oraz
metody
i
atrybuty
klas.
Komentarze powinny by
ć
krótkie, precyzyjne. Nale
ż
y je umieszcza
ć
bezpo
ś
rednio przed
dokumentowanym elementem programu.
Polecenie wygenerowania dokumentacji ma posta
ć
:
javadoc nazwa_pliku.java
Jego wynikiem jest zbiór plików z opisem w formacie HTML.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
5 / 55
Tworzenie dokumentacji
Aby tekst komentarza został rozpoznany przez
javadoc
, musi by
ć
umieszczony
pomi
ę
dzy sekwencjami znaków
/**
i
*/
.
Pocz
ą
tkowe znaki
*
w kolejnych wierszach s
ą
pomijane.
W tek
ś
cie komentarza mo
ż
na umieszcza
ć
kod HTML np.
<ol>
<li> pierwszy element list
<li> drugi element listy
</ol>
Ka
ż
dy wiersz zawieraj
ą
cy znak
@
, po którym nast
ę
puje jeden ze znaczników
dokumentacyjnych, powoduje utworzenie w dokumentacji oddzielnego
paragrafu.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
6 / 55
Znaczniki dokumentacyjne
javadoc
@
author
– informacje o autorze programu,
@
version
– informacje o wersji programu,
@
return
– opis wyniku zwracanego przez metod
ę
,
@
serial
– opis typu danych i mo
ż
liwych warto
ś
ci przyjmowanych przez zmienn
ą
,
@
see
– tworzy ł
ą
cze do innego tematu,
@
since
– opis wersji, od której zaistniał okre
ś
lony fragment kodu,
@
deprecated
– informacje o elementach zdeprecjonowanych
(które nie s
ą
zalecane),
@
param
– opis parametru wywołania metody,
@
exception
– identyfikator wyj
ą
tku.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
7 / 55
Przykład tworzenia dokumentacji
/**
* To jest przykładowa klasa <code>Komunikat</code>
* zawieraj
ą
ca komentarze <i>javadoc</i>.
* @author Paweł Rogalinski
* @version v1.0 (2006r.)
*/
class
Komunikat
{
/**
* metoda drukuje komunikat.
* @param tekst tre
ść
komunikatu
* @return zawsze zwraca 1.
*/
public
int
drukujKomunikat(String tekst)
{ System.out.println(tekst);
return
1;
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
8 / 55
Przykład tworzenia dokumentacji
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
9 / 55
Słowa kluczowe
Słowa kluczowe to słowa, które maj
ą
specjalne znaczenie (np. oznaczaj
ą
instrukcje
steruj
ą
ce) i nie mog
ą
by
ć
u
ż
ywane w innym kontek
ś
cie ni
ż
okre
ś
la składnia j
ę
zyka.
abstract
default
if
package
synchronized
assert
do
implements private
this
boolean
double
import
protected
throw
break
else
instanceof public
throws
byte
extends
int
return
transient
case
false
interface
short
true
catch
final
long
static
try
char
finally
native
strictfp
void
class
float
new
super
volatile
const
for
null
switch
while
continue
goto
Uwagi:
słowa kluczowe
goto
i
const
, s
ą
zarezerwowane ale nie s
ą
u
ż
ywane.
słowa
boolean
,
byte
,
char
,
double
,
float
,
int
,
long
,
short
s
ą
nazwami typów podstawowych.
słowa
true
,
false
i
null
s
ą
nazwami stałych.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
10 / 55
Identyfikatory
Identyfikatory to tworzone przez programist
ę
nazwy klas, pól i metod klasy
oraz stałych i zmiennych.
Identyfikator musi zaczyna
ć
si
ę
od litery lub podkre
ś
lenia i mo
ż
e składa
ć
si
ę
z dowolnych znaków alfanumerycznych (liter i cyfr) oraz znaków podkre
ś
lenia.
Java rozró
ż
nia wielkie i małe litery w identyfikatorach
Identyfikator nie mo
ż
e pokrywa
ć
si
ę
ze słowami kluczowymi.
Zalecenia:
Nazwy klas: wszystkie słowa w nazwie rozpoczyna
ć
du
żą
liter
ą
,
np.:
ObiektGraficzny
Nazwy metod i pól publicznych: pierwsze słowo rozpoczyna
ć
mał
ą
liter
ą
,
a kolejne wyrazy du
żą
liter
ą
, np.:
rysujTlo
,
kolorWypelnienia
.
Nazwy metod i pól prywatnych: pisa
ć
wył
ą
cznie małymi literami,
a wyrazy ł
ą
czy
ć
podkre
ś
leniem, np.:
kierunek_ruchu
.
Nazwy zmiennych niemodyfikowalnych (stałych): pisa
ć
wył
ą
cznie du
ż
ymi literami,
a wyrazy ł
ą
czy
ć
podkre
ś
leniem, np.:
ROZMIAR_TABLICY
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
11 / 55
Typy danych
Typ danej to
zbiór jej mo
ż
liwych warto
ś
ci
oraz
zestaw operacji
, które mo
ż
na na nich
wykonywa
ć
. Jednocze
ś
nie okre
ś
la on
rozmiar pami
ę
ci
potrzebny do
przechowywania danej oraz
sposób zapisu danej w pami
ę
ci
komputera.
J
ę
zyk Java zawiera nast
ę
puj
ą
ce typy danych:
typy podstawowe:
–
typy całkowite:
byte
,
short
,
int
,
long
,
–
typy rzeczywiste:
float
,
double
,
–
typ znakowy:
char
,
–
typ logiczny:
boolean
,
typ wyliczeniowy
typ referencyjny – nazwy typu referencyjnego pochodz
ą
od nazwy klasy lub
interfejsu. Warto
ś
ci
ą
zmiennej typu referencyjnego jest referencja (odniesienie) do
obiektu.
Dane w programie przedstawiamy za pomoc
ą
literałów, zmiennych oraz stałych.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
12 / 55
Typy podstawowe
Typy podstawowe reprezentuj
ą
pojedyncze warto
ś
ci – nie s
ą
one zło
ż
onymi obiektami.
Zapewnia to bardzo du
żą
wydajno
ść
przy wykonywaniu oblicze
ń
.
Rozmiar i zakres warto
ś
ci typów podstawowych
nazwa
typu
zaj
ę
to
ść
pami
ę
ci
zakres warto
ś
ci
warto
ść
domy
ś
lna
znaczenie
byte
1
od -128 do 127
0
short
2
od -32768 do 32767
0
int
4
od ok. -2
×
10
9
do ok. 2
×
10
9
0
long
8
od ok. -9
×
10
18
do ok. 9
×
10
18
0
liczby całkowite
float
4
od ok. -3.4
×
10
38
do ok. 3.4
×
10
38
0.0F
double
8
od ok. -1.7
×
10
308
do ok. 1.7
×
10
308
0.0D
liczby rzeczywiste
char
2
od 0 do 65535
‘x0’
znaki unicode
boolean
1
false
,
true
false
warto
ś
ci logiczne
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
13 / 55
Typy podstawowe
Wszystkie typy całkowite reprezentuj
ą
liczby ze znakiem tzn. pierwszy bit liczby
jest traktowany jako znak.
Implementacja typów zmiennoprzecinkowych w Javie jest zgodna ze standardem
IEEE-754.
Znaki s
ą
w Javie reprezentowane jako 16-bitowe kody Unicode UTF-16 (ponad
65 tys. znaków; m.in. alfabet grecki i znaki innych alfabetów europejskich,
rosyjski, arabski, hebrajski, japo
ń
ski). Powszechnie obecnie stosowany kod
ASCII (7 bitowy) jest podzbiorem Unikodu.
Dane typu logicznego mog
ą
przyjmowa
ć
tylko jedn
ą
z dwóch warto
ś
ci:
true
(prawda) lub
false
(fałsz). Nie mo
ż
na stosowa
ć
warto
ś
ci 0 i 1, tak jak to
jest w j
ę
zyku C/C++.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
14 / 55
Typy wyliczeniowe
Wyliczenia tworzy si
ę
za pomoc
ą
słowa kluczowego
enum,
np.:
enum Kolor
{ Zielony, Zolty, Czerwony
}
Identyfikatory
Zielony
,
Zolty
,
Czerwony
nazywany stałymi wyliczeniowymi.
S
ą
one publicznymi statycznymi składowymi wyliczenia i posiadaj
ą
taki sam typ jak wyliczenie
W programie mo
ż
na deklarowa
ć
zmienne wyliczeniowe, którym mo
ż
na
przypisywa
ć
stałe wyliczenia, np.:
Kolor kol;
kol = Kolor.Zielony.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
15 / 55
Typy wyliczeniowe cd.
Stałe wyliczeniowe mo
ż
na wykorzystywa
ć
w instrukcji warunkowej
if
oraz
w instrukcji wyboru
switch
, np.:
if (kol==Kolor.Czerwony){ ... }
switch(kol)
{ case Zielony: System.out.print(”GREEN”); break;
case Zolty: System.out.print(”YELLOW”); break;
case Czerwony: System.out.print(”RED”); break;
}
Wszystkie wyliczenia automatycznie zawieraj
ą
dwie predefiniowane metody:
public static
typ-wyliczeniowy
[] values()
public static
typ-wyliczeniowy
valueOf(String tekst)
Metoda
values()
zwraca tablic
ę
zawieraj
ą
c
ą
list
ę
stałych wyliczeniowych.
Metoda
valueOf()
zwraca stał
ą
wyliczeniow
ą
, której odpowiada tekst
przekazany jako argument.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
16 / 55
Typy wyliczeniowe - przykład
class
KoloryDemo
{
// deklaracja typu wyliczeniowego
enum
Kolor
{ Zielony, Zolty, Czerwony
}
public static void
main(String[ ] args)
{
// deklaracja zmniennej typu wyliczeniowego
Kolor kolor;
// u
ż
ycie metody values()
System.out.println(
"Oto wszystkie kolory"
);
Kolor[] tab = Kolor.values();
for
(Kolor k : tab) System.out.println(k);
// u
ż
ycie metody valueOf()
kolor = Kolor.valueOf(
"Zielony"
);
// u
ż
ycie stałej wyliczeniowej w instrukcji if
if
(kolor==Kolor.Zielony) System.out.println(
"\n GREEN \n"
);
if
(kolor==Kolor.Zolty) System.out.println(
"\n YELLOW \n"
);
if
(kolor==Kolor.Czerwony) System.out.println(
"\n RED \n"
);
// u
ż
ycie stałych wyliczeniowych w instrukcji switch
switch
(kolor)
{
case
Zielony:
System.out.println(
"kolor zielony - droga wolna"
);
break
;
case
Zolty:
System.out.println(
"kolor
ż
ółty - uwaga"
);
break
;
case
Czerwony:
System.out.println(
"kolor czerwony - stop"
);
break
;
} } }
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
17 / 55
Literały
Literał to napis reprezentuj
ą
cy w sposób bezpo
ś
redni warto
ść
danej. W Javie
wyró
ż
niamy literały liczbowe, znakowe, ła
ń
cuchowe i logiczne.
Literał liczbowy to bezpo
ś
redni zapis konkretnej liczby.
Liczby całkowite mog
ą
by
ć
zapisywane w systemie:
–
dziesi
ę
tnym, w naturalny sposób np.
3
lub
121
–
ósemkowym, poprzez poprzedzenie liczby zerem np.
03
–
szesnastkowym, poprzez poprzedzenie liczby znakami
0x
lub
0X
np.
0xFF
(cyfry szesnastkowe powy
ż
ej 9 mog
ą
by
ć
zapisywane wielkimi lub małymi
literami).
Ka
ż
da liczba całkowita zapisana literalnie (np.
100
) jest traktowana jako liczba
typu
int
.
Liczby całkowite typu
long
s
ą
zapisywane z przyrostkiem
L
lub
l
np.
300L
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
18 / 55
Literały cd.
Literały liczbowe cd.
Przy zapisie liczb rzeczywistych jako separator miejsc dziesi
ę
tnych jest
stosowana kropka (a nie przecinek) np.
3.1415
Liczby rzeczywiste mog
ą
by
ć
zapisywane w notacji naukowej z wykorzystaniem
litery e lub E np.
9.3e-9
(9.3 pomno
ż
one przez 10 do pot
ę
gi -9)
Ka
ż
da liczba rzeczywista zapisana literalnie (z kropk
ą
dziesi
ę
tn
ą
lub w notacji
naukowej) jest traktowana jako liczba typu
double
.
Liczby rzeczywiste typu
float
s
ą
zapisywane z przyrostkiem
F
lub
f
np.
3.7f
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
19 / 55
Literały cd.
Literał znakowy okre
ś
la jeden znak zapisany bezpo
ś
rednio w programie.
Literały znakowe typu
char
zapisujemy jako:
–
pojedyncze znaki w apostrofach np.
’A’
,
’+’
,
–
znaki specjalne uj
ę
te w apostrofy np.
’\n’
,
’\t’
,
–
jako kod szesnastkowy Unicode uj
ę
ty w apostrofy
np.
’\u006E’
(litera n),
’\u001B’
(znak Esc),
Bezpo
ś
rednich kodów Unikodu nie wolno stosowa
ć
dla
znaków specjalnych LF (
’\u000a’
) i CR (
’\000d’
).
Zamiast tego nale
ż
y stosowa
ć
znaki
’\n’
i
’\r’
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
20 / 55
Literały cd.
Znaki specjalne i ich zapis stosowany w literałach znakowych i ła
ń
cuchowych
znaki specjalne
zapis
przej
ś
cie do nowego wiersza (line feed – LF)
\n
tabulacja (TAB)
\t
backspace (BS)
\b
powrót karetki (carrage return – CR)
\r
nowa strona (form feed – FF)
\f
apostrof
\’
cudzysłów
\”
lewy uko
ś
nik (backslash)
\\
dowolny znak o kodzie NNNN w unikodzie (N to cyfra szesnastkowa)
\uNNNN
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
21 / 55
Literały cd.
Literał ła
ń
cuchowy to bezpo
ś
rednio zapisane ci
ą
gi znaków (napisy),
które s
ą
traktowane jako teksty
.
Ła
ń
cuchy znakowe zapisujemy jako ci
ą
gi znaków uj
ę
te w cudzysłowy
np.
”Ala ma kota”
.
W ła
ń
cuchach mo
ż
na wstawia
ć
znaki specjalne oraz znaki unikodu
np.
”dwa\nwiersze i litera \u0061”
.
W Javie literały ła
ń
cuchowe s
ą
zawsze traktowane jako obiekty klasy
String
.
Literały logiczne s
ą
zapisywane wył
ą
cznie za pomoc
ą
słów
false
i
true
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
22 / 55
Literały cd.
Przykład drukowania literałów znakowych i ła
ń
cuchowych
class
Literaly
{
public
static
void
main(String[] args){
System.out.println(
'A'
);
System.out.println(
'\u0061'
);
System.out.println('\\');
System.out.println(
"Ala \n ma \"kota\""
);
System.out.println(
"----------"
);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
23 / 55
Operatory
Operatory
s
ą
to specjalne symbole stosowane do wykonywania działa
ń
arytmetycznych,
przypisa
ń
, porówna
ń
i innych operacji na danych.
Dane, na których s
ą
wykonywane operacje s
ą
nazywane
argumentami
. Operatory s
ą
jedno, dwu lub trzyargumentowe.
Uwaga: Niektóre operatory mog
ą
by
ć
stosowane zarówno jako
jednoargumentowe jak i dwuargumentowe np.
+
.
Ka
ż
dy operator mo
ż
e by
ć
stosowany wył
ą
cznie do danych okre
ś
lonego typu.
Wynik działania operatora jest okre
ś
lonego typu.
Uwaga: Dla niektórych operatorów typ wyniku zale
ż
y od typu argumentów.
Wyra
ż
enia
tworzy si
ę
za pomoc
ą
operatorów i nawiasów ze zmiennych, stałych,
literałów oraz wywoła
ń
metod. Wyra
ż
enia s
ą
opracowywane (wyliczane),
a ich wyniki mog
ą
by
ć
w ró
ż
ny sposób wykorzystane np. w przypisaniach, jako
argumenty innych operatorów, w instrukcjach steruj
ą
cych wykonaniem programu,
w wywołaniach metod, itd.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
24 / 55
Operatory cd.
Kolejno
ść
opracowywania (wyliczania) wyra
ż
e
ń
zale
ż
y od priorytetów i wi
ą
za
ń
operatorów u
ż
ytych w tych wyra
ż
eniach.
Priorytety
mówi
ą
o tym, w jakiej kolejno
ś
ci b
ę
d
ą
wykonywane ró
ż
ne operacje w tym
samym
wyra
ż
eniu.
Przykład: W wyra
ż
eniu
a+b*c
najpierw b
ę
dzie wykonane mno
ż
enie, a potem
dodawanie poniewa
ż
operator
*
ma wy
ż
szy priorytet ni
ż
operator
+
.
Ż
eby odwróci
ć
kolejno
ść
wykonywania działa
ń
trzeba u
ż
y
ć
nawiasów:
(a+b)*c
Wi
ą
zania
okre
ś
laj
ą
kolejno
ść
wykonywania operacji o tym samym priorytecie tzn. czy s
ą
one wykonywane od lewej strony wyra
ż
enia czy od prawej.
Przykład: W wyra
ż
eniu
a-b+c
najpierw b
ę
dzie wykonane odejmowanie,
a potem dodawanie bo wi
ą
zanie operatorów
+
i
–
jest lewostronne.
Ż
eby odwróci
ć
kolejno
ść
wykonywania działa
ń
trzeba u
ż
y
ć
nawiasów:
a-(b+c)
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
25 / 55
Zestawienie operatorów dost
ę
pnych w Javie
wi
ą
zanie i
priorytet
operator
sposób u
ż
ycia
działanie
.
obiekt
.
składowa
wybór składowej klasy
[ ]
tablica
[
wyra
ż
enie
]
indeks tablicy
le
w
e
1
( )
metoda
(
lista wyra
ż
e
ń
)
wywołanie metody
++
zmienna
++
++
zmienna
przyrostkowe / przedrostkowe
zwi
ę
kszenie o 1
--
zmienna
--
--
zmienna
przyrostkowe / przedrostkowe
zmniejszenie o 1
+
-
+
wyra
ż
enie
-
wyra
ż
enie
jednoargumentowy plus,
jednoargumentowy minus
!
!
wyra
ż
enie
negacja logiczna
~
~
wyra
ż
enie
dopełnienie bitowe
(
typ
)
(
typ
)
wyra
ż
enie
rzutowanie typu
p
ra
w
e
2
new
new
typ
tworzenie obiektu
*
wyra
ż
enie
*
wyra
ż
enie
mno
ż
enie,
/
wyra
ż
enie
/
wyra
ż
enie
dzielenie,
le
w
e
3
%
wyra
ż
enie
%
wyra
ż
enie
modulo
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
26 / 55
wi
ą
zanie i
priorytet
operator
sposób u
ż
ycia
działanie
+
wyra
ż
enie
+
wyra
ż
enie
dodawanie,
ł
ą
czenie ła
ń
cuchów,
le
w
e
4
-
wyra
ż
enie
-
wyra
ż
enie
odejmowanie
<<
wyra
ż
enie
<<
wyra
ż
enie
przesuni
ę
cie bitowe w lewo
>>
wyra
ż
enie
>>
wyra
ż
enie
przesuni
ę
cie bitowe w prawo
le
w
e
5
>>>
wyra
ż
enie
>>>
wyra
ż
enie
przes. bitowe w prawo bez znaku
<
wyra
ż
enie
<
wyra
ż
enie
mniejsze,
<=
wyra
ż
enie
<=
wyra
ż
enie
mniejsze lub równe,
>
wyra
ż
enie
>
wyra
ż
enie
wi
ę
ksze,
>=
wyra
ż
enie
>=
wyra
ż
enie
wi
ę
ksze lub równe
6
instanceof
obiekt
instanceof
klasa
stwierdzenie typu obiektu
==
wyra
ż
enie
==
wyra
ż
enie
równo
ść
,
le
w
e
7
!=
wyra
ż
enie
!=
wyra
ż
enie
nierówno
ść
8
&
wyra
ż
enie
&
wyra
ż
enie
bitowe AND
9
^
wyra
ż
enie
^
wyra
ż
enie
bitiwe OR wył
ą
czaj
ą
ce
10
|
wyra
ż
enie
|
wyra
ż
enie
bitiwe OR
11
&&
wyra
ż
enie
&&
wyra
ż
enie
logiczne AND
12
||
wyra
ż
enie
||
wyra
ż
enie
logiczne OR
le
w
e
13
? :
wyra
ż
?
wyra
ż
:
wyra
ż
operator warunku
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
27 / 55
wi
ą
zanie i
priorytet
operator
sposób u
ż
ycia
działanie
=
zmienna
=
wyra
ż
enie
proste przypisanie
*=
zmienna
*=
wyra
ż
enie
pomnó
ż
i przypisz
/=
zmienna
/=
wyra
ż
enie
podziel i przypisz
%=
zmienna
%=
wyra
ż
enie
oblicz modulo i przypisz
+=
zmienna
+=
wyra
ż
enie
dodaj i przypisz
-=
zmienna
-=
wyra
ż
enie
odejmij i przypisz
<<=
zmienna
<<=
wyra
ż
enie
przesu
ń
w lewo i przypisz
>>=
zmienna
>>=
wyra
ż
enie
przesu
ń
w prawo i przypisz
>>>=
zmienna
>>>=
wyra
ż
enie
przesu
ń
w prawo bez znaku i
przypisz
&=
zmienna
&=
wyra
ż
enie
koniunkcja bitowa i przypisz
^=
zmienna
^=
wyra
ż
enie
ró
ż
nica bitowa i przypisz
p
ra
w
e
14
|=
zmienna
|=
wyra
ż
enie
alternatywa bitowa i przypisz
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
28 / 55
Operatory przypisania
Operator przypisania
=
oblicza warto
ść
wyra
ż
enia po prawej stronie, a nast
ę
pnie
przypisuje obliczon
ą
warto
ść
do zmiennej umieszczonej po lewej stronie.
Uwaga: Działanie operatora dla
typów prostych
jest zgodne z intuicj
ą
.
Je
ś
li
a
i
b
s
ą
zmiennymi typu prostego to instrukcja
a=b
powoduje skopiowanie
warto
ś
ci zmiennej
b
do
a
. Pó
ź
niejsza modyfikacja zmiennej
b
nie wpływa na
warto
ść
zmiennej
a
.
Je
ś
li zmienne
a
i
b
s
ą
typu referencyjnego
(zawieraj
ą
odwołanie do obiektu)
to wykonanie instrukcji
a=b
powoduje skopiowanie do zmiennej
a
referencji do
obiektu wskazywanego przez zmienn
ą
b
. W efekcie zmienne
a
i
b
wskazuj
ą
na
ten sam obiekt. Pó
ź
niejsza modyfikacja obiektu wskazywanego przez
b
powoduje
równie
ż
modyfikacj
ę
obiektu wskazywanego przez
a
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
29 / 55
Operator przypisania - przykład dla typów prostych
i referencyjnych
class
Test
{
int
p;
Test(
int
p){
this
.p=p; }
public
String toString(){
return
""+p; }
public
static
void
main(String[] args){
System.out.println(
"Inicjalizacja:"
);
int
zmA = 10;
int
zmB = 15;
Test obA =
new
Test(10);
Test obB =
new
Test(15);
System.out.println(
"zmA = "
+zmA+
" zmB = "
+zmB);
System.out.println(
"obA = "
+obA+
" obB = "
+obB);
System.out.println(
"\nPrzypisanie:"
);
zmA = zmB;
obA = obB;
System.out.println(
"zmA = "
+zmA+
" zmB = "
+zmB);
System.out.println(
"obA = "
+obA+
" obB =
"
+obB);
System.out.println(
"\nModyfikacja:"
);
zmB = 20;
obB.p = 20;
System.out.println(
"zmA = "
+zmA+
" zmB = "
+zmB);
System.out.println(
"obA = "
+obA+
" obB = "
+obB);
} }
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
30 / 55
Operator przypisania - przykład dla typów prostych
i referencyjnych
10
15
10
zmB
zmA
obB
obA
15
// Inicjalizacja
int zmA = 10;
int zmB = 15;
Test obA = new Test(10);
Test obB = new Tesy(20);
15
15
10
zmB
zmA
obB
obA
15
// Przypisanie
zmA = zmB;
obA = obB;
15
20
10
zmB
zmA
obB
obA
20
// Modyfikacja
zmB = 20;
obB.p = 20;
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
31 / 55
Operator przypisania cd.
Wi
ą
zanie prawostronne operatora przypisania powoduje,
ż
e instrukcje przypisania s
ą
opracowywane od prawej strony. W wyra
ż
eniu:
a=b=c=10;
najpierw zostanie
wykonane przypisanie
c=10
, nast
ę
pnie przypisanie
b=c
, a na koniec
a=b
. W
rezultacie zmienne
a
b
i
c
b
ę
d
ą
miały warto
ść
10
.
W Javie wyst
ę
puj
ą
tzw. zło
ż
one operatory przypisania w postaci
op=
gdzie
op
jest to
jeden z operatorów:
*
,
/
,
%
,
+
,
-
,
<<
,
>>
,
>>>
,
&
,
^
,
|
.
Uwaga: Instrukcja
x op= wyra
ż
enie;
jest równowa
ż
na instrukcji:
x = x op wyra
ż
enie;
Jest to bardzo wygodny sposób skracania zapisu,
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
32 / 55
Operatory inkrementacji i dekrementacji
Operator
++
zwi
ę
ksza, a
–-
zmniejsza o jeden warto
ść
argumentu (zmiennej). Oba
wyst
ę
puj
ą
w dwóch postaciach:
•
przyrostkowej (operator po argumencie
–-
zmiennej),
•
przedrostkowej (operator przed argumentem
–-
zmienn
ą
).
Przyrostkowa forma operatorów modyfikuje warto
ść
argumentu po jej wykorzystaniu
w wyra
ż
eniu, przedrostkowa przed wykorzystaniem tej warto
ś
ci.
class
Incrementacja
{
public
static
void
main(String[] args){
int
a, a2, b, b2;
a=10; b=10;
System.out.println(
"a="
+a+
" b="
+b);
a2=++a;
b2=b++;
System.out.println(
"Wykonuje instrkcje: a2=++a; b2=b++;"
);
System.out.println(
"a="
+a+
" a2="
+a2);
System.out.println(
"b="
+b+
" b2="
+b2);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
33 / 55
Rodzaje instrukcji w j
ę
zyku Java
Instrukcja pusta
– nie powoduj
ę
wykonania
ż
adnych działa
ń
np.
;
Instrukcje wyra
ż
eniowe
:
przypisanie np.
a = b;
preinkrementacja np.
++a;
predekrementacja np.
--b;
postinckrementacja np.
a++;
postdekrementacja np.
b--;
wywołanie metody np.
x.metoda();
wyra
ż
enie new np.
new Para();
Uwaga: instrukcja wyra
ż
eniowa jest zawsze zako
ń
czona
ś
rednikiem.
Instrukcja grupuj
ą
ca
– dowolne instrukcje i deklaracje zmiennych uj
ę
te w nawiasy
klamrowe np.
{ int a,b;
a = 2*a+b;
}
Uwaga: po zamykaj
ą
cym nawiasie nie stawiamy
ś
rednika.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
34 / 55
Rodzaje instrukcji w j
ę
zyku Java cd.
Instrukcja etykietowana
– identyfikator i nast
ę
puj
ą
cy po nim dwukropek wskazuj
ą
cy
instrukcje steruj
ą
c
ą
switch
,
for
,
while
lub
do
.
Instrukcja steruj
ą
ca
– umo
ż
liwia zmian
ę
sekwencji (kolejno
ś
ci) wykonania innych
instrukcji programu. Rozró
ż
niamy instrukcje:
warunkowe:
if
,
if
...
else
,
switch
iteracyjne:
for
,
while
,
do
...
while
skoku:
break
,
continue
,
return
Instrukcja throw
– zgłaszanie wyj
ą
tku przerywaj
ą
cego normalny tok działania programu.
Instrukcja synchronized
– wymuszanie synchronizacji przy współbie
ż
nym
wykonywaniu ró
ż
nych w
ą
tków programu
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
35 / 55
Posta
ć
instrukcji warunkowej
if
Instrukcja warunkowa
if
słu
ż
y do zapisywania decyzji, gdzie wykonanie
instrukcji
jest uzale
ż
nione od spełnienia jakiego
ś
warunku
.
if (
warunek
)
{
instrukcja;
}
warunek
instrukcja
prawda
fałsz
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
36 / 55
Posta
ć
instrukcji warunkowej
if - else
Instrukcja warunkowa
if ... else
słu
ż
y do zapisywania decyzji, gdzie wykonanie
jednej z alternatywnych instrukcji zale
ż
y od spełnienia jakiego
ś
warunku.
Je
ś
li
warunek
jest prawdziwy to wykonywana jest
instrukcja1
, w przeciwnym wypadku
wykonywana jest
instrukcja2
.
if (
warunek
)
{
instrukcja1;
}
else
{
instrukcja2;
}
warunek
instrukcja1
instrukcja2
prawda
fałsz
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
37 / 55
Przykład - instrukcja
if ... else
import
javax.swing.JOptionPane;
class
PrzykladIf
{
public
static
void
main(String[] args)
{
double
a, b, c, delta, x1, x2;
a = Double.parseDouble(JOptionPane.showInputDialog(
null
,
"Podaj a:"
));
b = Double.parseDouble(JOptionPane.showInputDialog(
null
,
"Podaj b:"
));
c = Double.parseDouble(JOptionPane.showInputDialog(
null
,
"Podaj c:"
));
System.out.println(
"\n"
+ a +
" x^2 + "
+ b +
" x + "
+ c +
" = 0"
);
if
(a<0)
{ System.out.println(
"\n To nie jest równanie kwadratowe"
);
System.exit(0);
}
delta = b*b-4*a*c;
System.out.println(
"\n delta="
+ delta);
if
(delta>0){
x1 = (-b - Math.sqrt(delta))/(2*a);
x2 = (-b + Math.sqrt(delta))/(2*a);
System.out.println(
"\n x1="
+ x1 +
" x2="
+ x2);
}
else
if
(delta==0){
x1 = -b/(2*a);
System.out.println(
"\n x1="
+ x1);
}
else
System.out.println(
"\n To równanie nie ma pierwiastków"
);
} }
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
38 / 55
Posta
ć
instrukcji wyboru
switch
Instrukcja wyboru
switch
pozwala zapisywa
ć
decyzje, kiedy to o wyborze jednej
z alternatyw decyduje warto
ść
skalarna jakiego
ś
wyra
ż
enia testowego
. Wyra
ż
enie to
musi by
ć
typu całkowitego, znakowego lub wyliczeniowego. Jego wynik jest
porównywany z
wyra
ż
eniami stałymi
(np. literałami) wyst
ę
puj
ą
cymi po słowie kluczowym
case
. W przypadku zgodno
ś
ci wykonywana jest odpowiednia
instrukcja po dwukropku
i nast
ę
puj
ą
ce po niej kolejne instrukcje a
ż
do napotkania instrukcji
break
lub
return
.
Je
ś
li
ż
adne z wyra
ż
e
ń
stałych po słowie
case
nie jest zgodne z warto
ś
ci
ą
wyra
ż
enia
testowego
to wykonywana jest
instrukcja po klauzuli
default
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
39 / 55
Posta
ć
instrukcji wyboru
switch
switch (
test
)
{ case
warto
ść
1
:
instrulcje1;
break;
case
warto
ść
2
:
instrukcje2;
case
warto
ść
3
:
instrukcje3;
case
warto
ść
4
:
instrukcje4;
break;
case
warto
ść
5
:
instrukcje5;
break;
... ...
default:
instrukcje-n;
}
...
test
warto
ść
1
warto
ść
2
warto
ść
3
warto
ść
4
warto
ść
5
inna
warto
ść
instrukcje1
instrukcje2
instrukcje3
instrukcje4
instrukcje5
instrukcje-n
...
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
40 / 55
Przykład – instrukcja
switch
import
javax.swing.JOptionPane;
class
PrzykladSwitch{
public
static
void
main(String[] args){
double
a, b;
char
oper;
a=Double.parseDouble(JOptionPane.showInputDialog(
null
,
"Podaj a"
));
b=Double.parseDouble(JOptionPane.showInputDialog(
null
,
"Podaj b"
));
oper=JOptionPane.showInputDialog(
null
,
"Podaj działanie"
).charAt(0);
System.out.println(
"a="
+ a +
" b="
+ b +
" oper="
+ oper);
switch
(oper){
case
'+': System.out.println(
" Suma wynosi "
+ (a+b));
break
;
case
'-': System.out.println(
"Roznica wynosi "
+ (a-b));
// break; <<<<<<<< UWAGA: to jest komentarz
case
'*': System.out.println(
"Iloczyn wynosi "
+ (a*b));
break
;
case
'/': System.out.println(
" Iloraz wynosi "
+ (a/b));
break
;
default
: System.out.println(
"Nieznana operacja"
);
}
System.out.println(
"Koniec \n"
);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
41 / 55
Przykład – instrukcja
switch
import
javax.swing.JOptionPane;
class
PrzykladSwitch{
public
static
void
main(String[] args){
double
a, b;
char
oper;
a=Double.parseDouble(JOptionPane.showInputDialog(null, "Podaj a"));
b=Double.parseDouble(JOptionPane.showInputDialog(null, "Podaj b"));
oper=JOptionPane.showInputDialog(
null
, "Podaj działanie").charAt(0);
System.out.println(
"a="
+ a +
" b="
+ b +
"
oper=" + o per);
switch
(oper){
case
'+': System.out.println(
" Suma wynosi "
+ (a+b));
break
;
case
'-': System.out.println(
"Roznica wynosi
" + (a-b));
// break; <<<<<<<< UWAGA: to jest komentarz
case
'*': System.out.println(
"Iloczyn wynosi "
+ (a*b));
break;
case
'/': System.out.println(
" Iloraz wynosi
" + (a/b));
break;
default
: System.out.println(
"Nieznana operacja
");
}
System.out.println(
"Koniec \n"
);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
42 / 55
Posta
ć
p
ę
tli
while
W nagłówku p
ę
tli
while
zapisywany jest
warunek
, który jest testowany przed
wykonaniem ka
ż
dej iteracji. Dopóki ten
warunek
jest prawdziwy, powtarzane jest
wykonanie
instrukcji
. Gdy
warunek
nie jest spełniony wykonanie p
ę
tli ko
ń
czy si
ę
.
Uwaga: Je
ś
li
warunek
nie b
ę
dzie spełniony ju
ż
na wst
ę
pie, to
instrukcja
w p
ę
tli
while
nie b
ę
dzie wykonana ani razu
while (
warunek
)
{
instrukcja;
}
warunek
instrukcja
prawda
fałsz
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
43 / 55
Przykład – p
ę
tla
while
import
javax.swing.JOptionPane;
class
PrzykladWhile{
public
static
void
main(String[] args){
final
int
LIMIT = 100;
String dana;
int
liczba, ilosc=0, suma = 0;
while
(suma<LIMIT){
dana = JOptionPane.showInputDialog(
"Podaj liczbe"
);
if
(dana==
null
)
break
;
liczba = Integer.parseInt(dana);
System.out.println(
"liczba="
+ liczba);
suma += liczba;
ilosc++;
}
System.out.println(
"Wprowadzono "
+ ilosc +
" liczb"
);
System.out.println(
" Suma = "
+ suma);
System.out.println(
"Srednia = "
+ (float)suma/ilosc);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
44 / 55
Przykład – p
ę
tla
while
import
javax.swing.JOptionPane;
class
PrzykladWhile{
public
static
void
main(String[] args){
final
int
LIMIT = 100;
String dana;
int
liczba, ilosc=0, suma = 0;
while
(suma<LIMIT){
dana = JOptionPane.showInputDialog(
"Podaj liczbe"
);
if
(dana==
null
)
break
;
liczba = Integer.parseInt(dana);
System.out.println(
"liczba="
+ liczba);
suma += liczba;
ilosc++;
}
System.out.println(
"Wprowadzono "
+ ilosc +
" liczb"
);
System.out.println(
" Suma = "
+ suma);
System.out.println(
"Srednia = "
+ (float)suma/ilosc);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
45 / 55
Posta
ć
p
ę
tli
do ... while
P
ę
tla
do ... while
słu
ż
y do zapisywania iteracji wykonywanej przynajmniej raz.
Instrukcja
w p
ę
tli jest wykonywana, po czym sprawdzany jest
warunek powtórzenia
.
Je
ś
li
warunek
jest spełniony to
instrukcja
w p
ę
tli jest wykonywana ponownie.
W przeciwnym razie wykonanie p
ę
tli ko
ń
czy si
ę
.
Uwaga:
Instrukcja
w p
ę
tli
do ... while
zawsze wykona si
ę
co najmniej jeden raz.
do
{
instrukcja;
}
while(
warunek
);
warunek
instrukcja
prawda
fałsz
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
46 / 55
Posta
ć
p
ę
tli
for
W nagłówku p
ę
tli
for
podawane s
ą
:
inicjalizacja
,
warunek powtórzenia
oraz
aktualizacja
.
Inicjalizacja
jest
wykonywana przed rozpocz
ę
ciem wykonywania p
ę
tli.
Warunek
jest sprawdzany przed ka
ż
d
ą
iteracj
ą
i je
ś
li jest
spełniony wykonywana jest
instrukcja
wewn
ą
trz p
ę
tli
i nast
ę
puj
ą
ca po niej
aktualizacja
. W przeciwnym razie
p
ę
tla jest przerywana.
for(
inicjalizacja;
warunek; aktualizacja
)
{
instrukcja;
}
warunek
instrukcja
inicjalizacja
prawda
fałsz
aktualizacja
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
47 / 55
Przykład – p
ę
tla
for
import
javax.swing.JOptionPane;
class
PrzykladFor{
public
static
void
main(String[] args){
int
k, w, wysokosc;
wysokosc = Integer.parseInt(JOptionPane.showInputDialog(
null
,
"Podaj wysokosc"
));
for
(w=1; w<=wysokosc; w++)
{
for
(k=1; k<=wysokosc; k++)
{
if
((k==1)||(w==wysokosc)||(w==k))
{
System.out.print(
"#"
);
}
else
{
System.out.print(
" "
);
}
}
System.out.println(
""
);
}
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
48 / 55
Przykład – p
ę
tla
for
import
javax.swing.JOptionPane;
class
PrzykladFor{
public
static
void
main(String[] args){
int
k, w, wysokosc;
wysokosc = Integer.parseInt(JOptionPane.showInputDialog(
null
,
"Podaj wysokosc"
));
for
(w=1; w<=wysokosc; w++)
{
for
(k=1; k<=wysokosc; k++)
{
if
((k==1)||(w==wysokosc)||(w==k))
{
System.out.print(
"#"
);
}
else
{
System.out.print(
" "
);
}
}
System.out.println(
""
);
}
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
49 / 55
Porównanie instrukcji iteracyjnych
P
ę
tle
while
oraz
do ...while
stosujemy zwykle wtedy, gdy kontynuacja działania
p
ę
tli zale
ż
y od jakiego
ś
warunku, a liczba iteracji nie jest z góry znana lub jest
trudna do okre
ś
lenia.
P
ę
tla
for
jest stosowana najcz
ęś
ciej przy organizacji p
ę
tli iteracyjnych ze znanym
zakresem iteracji.
P
ę
tle
for
mo
ż
na łatwo przekształci
ć
na p
ę
tl
ę
while
. Ilustruje to poni
ż
sze zastawienie:
for (inicjalizacja; warunek; aktualizacja)
{
instrukcja;
}
inicjalizacja;
while(warunek)
{
instrukcja;
aktualizacja;
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
50 / 55
Przerywanie p
ę
tli – instrukcja
break
Instrukcja
break
powoduje przerwanie wykonywania p
ę
tli. W przypadku p
ę
tli
zagnie
ż
d
ż
onych przerywana jest p
ę
tla wewn
ę
trzna, w której bezpo
ś
rednio
znajduje si
ę
instrukcja
break
.
Je
ś
li po instrukcji
break
wyst
ę
puje etykieta, to przerywana jest ta p
ę
tla lub blok
instrukcji, która jest opatrzona t
ą
etykiet
ą
.
Uwaga: etykieta musi by
ć
umieszczona bezpo
ś
rednio przed p
ę
tl
ą
lub blokiem
instrukcji, które maj
ą
by
ć
przerwane.
Instrukcja
break
stosowana jest równie
ż
do opuszczania instrukcji
switch
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
51 / 55
Przykład – instrukcja
break
class
PrzykladBreak{
public
static
void
main(String[] args)
{
System.out.println(
"POCZATEK 1"
);
for
(
int
i=0; i<3; i++)
{
for
(
int
j=0; j<100; j++)
{
if
(j==10)
break
;
System.out.print(j +
" "
);
}
System.out.println();
}
System.out.println(
"KONIEC 1\n"
);
System.out.println(
"POCZATEK 2"
);
etykieta:
for
(
int
i=0; i<3; i++)
{
for
(
int
j=0; j<100; j++)
{
if
(j==10)
break
etykieta;
System.out.print(j +
" "
);
}
System.out.println();
}
System.out.println(
"\nKONIEC 2\n"
);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
52 / 55
Przykład – instrukcja
break
class
PrzykladBreak{
public
static
void
main(String[] args)
{
System.out.println(
"POCZATEK 1"
);
for
(
int
i=0; i<3; i++)
{
for
(
int
j=0; j<100; j++)
{
if
(j==10)
break
;
System.out.print(j +
" "
);
}
System.out.println();
}
System.out.println(
"KONIEC 1\n"
);
System.out.println(
"POCZATEK 2"
);
etykieta:
for
(
int
i=0; i<3; i++)
{
for
(
int
j=0; j<100; j++)
{
if
(j==10)
break
etykieta;
System.out.print(j +
" "
);
}
System.out.println();
}
System.out.println(
"\nKONIEC 2\n"
);
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
53 / 55
Kontynuowanie p
ę
tli – instrukcja
continue
Instrukcja
continue
przerywa wykonywanie bie
żą
cego kroku p
ę
tli i wznawia
wykonanie kolejnej iteracji. W przypadku p
ę
tli zagnie
ż
d
ż
onych działanie to
dotyczy tej p
ę
tli wewn
ę
trznej, w której jest umieszczona instrukcja
continue
.
Je
ś
li po instrukcji
continue
wyst
ę
puje etykieta, to wznawiana jest iteracja tej p
ę
tli,
która jest opatrzona t
ą
etykiet
ą
.
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
54 / 55
Przykład – instrukcja
continue
class
PrzykladBreak{
class
PrzykladCont{
public
static
void
main(String[] args)
{
etykieta:
for
(int i=0; i<10; i++)
{
for
(int j=0; j<10; j++)
{
if
(j>i)
{
System.out.println();
continue
etykieta;
}
System.out.print(
" "
+ (i*j));
}
}
System.out.println();
}
}
Podstawy j
ę
zyka Java
Autor: Paweł Rogali
ń
ski – Instytut Informatyki, Automatyki i Robotyki PWr
55 / 55
Przykład – instrukcja
continue
class
PrzykladBreak{
class
PrzykladCont{
public
static
void
main(String[] args)
{
etykieta:
for
(int i=0; i<10; i++)
{
for
(int j=0; j<10; j++)
{
if
(j>i)
{
System.out.println();
continue
etykieta;
}
System.out.print(
" "
+ (i*j));
}
}
System.out.println();
}
}