background image

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

 

 

background image

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 

 

background image

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 {... 

background image

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. 

background image

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. 

background image

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. 

background image

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; 

    } 

 

background image

Podstawy j

ę

zyka Java              

Autor: Paweł Rogali

ń

ski – Instytut Informatyki, Automatyki i Robotyki PWr 

8 / 55

 

 

Przykład tworzenia dokumentacji 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

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. 

background image

Podstawy j

ę

zyka Java              

Autor: Paweł Rogali

ń

ski – Instytut Informatyki, Automatyki i Robotyki PWr 

10 / 55

 

 

Identyfikatory 

Identyfikatory to tworzone przez programist

ę

 nazwy klaspó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

.

  

background image

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. 

background image

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 

od -128 do 127 

short

 

od -32768 do 32767 

int

 

od ok. -2

×

10

do ok. 2

×

10

9

 

long

 

od ok. -9

×

10

18 

do ok. 9

×

10

18

 

liczby całkowite 

float

 

od ok. -3.4

×

10

38 

do ok. 3.4

×

10

38

 

0.0F 

double

 

od ok. -1.7

×

10

308 

do ok. 1.7

×

10

308

 

0.0D 

liczby rzeczywiste 

char

 

od 0 do 65535 

‘x0’ 

znaki unicode 

boolean

 

false

,

true

 

false

 

warto

ś

ci logiczne 

background image

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++. 

background image

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. 

background image

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.  

background image

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

}   } } 

background image

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 liczboweznakoweł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

background image

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

.

 

background image

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’

.

 

background image

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

 

 

background image

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

background image

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(

"----------"

); 

    } 

 

 

 

 

background image

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. 

background image

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) 

 

background image

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

 

( )

 

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

 

new

 

new

 typ 

tworzenie obiektu 

*

 

wyra

ż

enie

*

wyra

ż

enie 

mno

ż

enie, 

/

 

wyra

ż

enie

/

wyra

ż

enie 

dzielenie, 

le

w

e

 

%

 

wyra

ż

enie

%

wyra

ż

enie 

modulo 

background image

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

 

-

 

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

 

>>>

 

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 

instanceof

 

obiekt 

instanceof

 klasa 

stwierdzenie typu obiektu 

==

 

wyra

ż

enie

==

wyra

ż

enie 

równo

ść

le

w

e

 

!=

 

wyra

ż

enie

!=

wyra

ż

enie 

nierówno

ść

 

&

 

wyra

ż

enie

&

wyra

ż

enie 

bitowe AND 

^

 

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 

background image

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 

ż

nica bitowa i przypisz 

p

ra

w

e

 

14 

|= 

zmienna

|=

wyra

ż

enie 

alternatywa bitowa i przypisz 

background image

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

background image

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);  

}     } 

background image

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; 

    

background image

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,   

background image

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); 

    } 
}  

 

 
 

background image

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. 

background image

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    

background image

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 

background image

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 

background image

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"

); 

}   } 

background image

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

.   

background image

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

 

... 

background image

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"

);    

    } 

background image

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"

);    

    } 

 

background image

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 

background image

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); 

    } 

background image

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); 

    } 

background image

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 

background image

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

 

background image

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(

""

); 

           } 
    } 

background image

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(

""

); 

           } 
    } 

background image

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; 
   } 

 

 

background image

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

background image

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"

); 

    } 

background image

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"

); 

    } 

background image

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

ą

background image

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(); 
    } 
}     

background image

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(); 
    } 
}