background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Zadania – pętla 

for

:

 

Napisać program na odliczanie od 1 co trzecią liczbę, 
przez 30 razy, na koncu komunikat 'koniec'
 

Wykorzystać do iteracji pętlę 

for

public static void main(String[] args)

{

//odliczanie od 1 co trzecią liczbę, przez 30 razy, na 

końcu komunikat 'koniec'

 

for(int i=1, k=1; k<=30; k++, i=i+3)

{

System.out.println(i);

}

System.out.println("

koniec

");

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Pętla for
Jest to pętla policzalna, czyli taka o której możemy 

powiedzieć iż wykona się określoną liczbę razy. Ogólna 

składnia pętli for wygląda w następujący sposób:

for

 (int i = 0; warunek; krok){

        

//instrukcja

}

Uwagi:

Zmienną 

i

 nazywamy Indeksem Pętli 

Indeks może być dowolnym typem prostym poza boolean. Typ char 

ograniczony jest do 65535 

Warunek może być dowolnym zdaniem logicznym, należy jednak 

zwrócić uwagę by nie była to tautologia. Otrzymamy wtedy pętle 

nieskończoną 

Krok pętli może być dowolny jednak tak samo jak w przypadku 

warunku trzeba uważać na zapętlenie się programu.

Pętla 

for

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Gdzie należy używać pętli for? 
Pętla ta najlepiej sprawdza się gdy chcemy wykonać jakąś 
operację na wszystkich elementach tablicy. Jest naturalną 
i najbardziej czytelną dla tego typu problemów:

int[] a = new int[] { 1, 2, 3 };

for

 (int i = 0; i < a.length; i++) {

        

System

.out.println(a[i]);

}

Pętla 

for

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Zadania – pętla 

while

:

 

Napisać program na odliczanie od 1 co trzecią liczbę, przez 30 razy, na 

koncu komunikat 'koniec' 

Wykorzystać pętlę 

while

public static void main(String[] args)

{

//odliczanie od 1 co trzecią liczbę, przez 30 razy, na końcu 

komunikat 'koniec'

 

int k=30;

int i=1;

while(k>0)

{

System.out.println(i);

i = i+3;

k--;

}

System.out.println("

koniec

");

 

}

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Pętle while i do while
Pętle niepoliczalne, czyli takie o których nie 

możemy powiedzieć ile razy się wykonają. 
Ich składnia jest następująca:

while

(warunekLogiczny){

   

//instrukcja

}

/*---------*/

do

{

   

//instrukcja

while

(warunekLogiczny)

Uwagi:

warunek musi być zmienną boolean lub obiektem 

klasy java.lang.Boolean.

Pętla 

while

 i 

do while

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Obie te konstrukcje są bardzo podobne do siebie. Główna różnica 

polega na tym iż w pętli 

while

 warunek jest sprawdzany przed 

wykonaniem instrukcji, a w pętli 

do while

 po wykonaniu 

instrukcji. Oznacza to, że pętla do while wykona się co najmniej 

jeden raz. Poniższy przykład ilustruje różnicę:

int i = 0;

while

 (i < 1) {

        

System

.out.println("while " + i);

        

i++;

}

do

 {

        

System

.out.println("do while " + i);

        

i++;

while 

(i < 1);

Pętla 

while

 i 

do while

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Druga pętla wykona się pomimo iż warunek, 1 < 1, nie jest 

prawdziwy.

Kiedy używać? Najczęściej pętla while jest wykorzystywana do 

nasłuchiwania. 

Polega to na stworzeniu nieskończonej pętli, najczęściej podając 

jako argument słowo true, której zadaniem jest wykonywanie 

danego kodu nasłuchującego. Prosty szablon animacji:

while

(animuj){

    //kod animacji

}

Dopóki flaga animuj jest prawdziwa wykonywana jest animacja. 

Podobnie ma się sprawa z prostymi serwerami które nasłuchują 

w ten sposób na portach. 

Pętla 

while

 i 

do while

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public class KlasaA 

{

public static void main(String[] args)

{

//program drukuje zadany napis

System.out.print("

Witaj na zajęciach z JAVY

");

}

}

Zadania – drukowanie napisu

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public class KlasaA 

{

public static void main(String[] args)

{

//program który sprawdza czy podane imie jest zgodne z wzorcem

System.out.print("

Podaj imie:

 ");

Scanner wejscie1 = new Scanner(System.in);

String imie = wejscie1.nextLine();

System.out.println(imie.length());

if

(imie.toLowerCase().equals("olek"))

{

System.out.println("OK");

}

else

{

System.out.println("zle");

}

}

Zadania – sprawdzanie wzorca

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Instrukcje sterujące

W momencie  gdy chcemy, aby program dokonał wyboru jednej z 

dróg na podstawie prawdziwości jakiegoś warunku logicznego 

możemy użyć jednej z dwóch instrukcji sterujących. Jeżeli chcemy, 

aby wybór został dokonany na podstawie stanu obiektu możemy użyć 

przełącznika - switch.

Instrukcja 

if

 / 

if else

Najprostszą instrukcją warunkową jest instrukcja if:

if

 (warunek_logiczny){

   //instrukcje wykonane jeżeli warunek jest PRAWDZIWY

}

odmianą tej instrukcji jest instrukcja 

if else

:

if(warunek_logiczny){

   //instrukcje wykonane jeżeli warunek jest PRAWDZIWY

}

else{

   //instrukcje wykonane jeżeli warunek jest FAŁSZYWY

}

Instrukcje sterujące

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Napisać program obliczający „podatek”

Sekwencja programu:

pobranie liczby od użytkownika:

jeżeli mniej niż 6000 to zwraca 0

podatek w przedziale 6000 - 20000  - 10%

w przedziale 20000-40000 - 20%

powyżej 40000 - 40%

Program – „podatki”

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public static void main(String[] args)

{

while

(true)

{

System.out.print("Podaj liczbe: ");

Scanner wejscie1 = new Scanner(System.in);

double zarobki = wejscie1.nextFloat();

if

(zarobki < 6000)

{

System.out.println("0");

}

else if

(zarobki < 20000)

{

double podatek = (zarobki - 6000)*0.2;

System.out.println(podatek);

}

else if

(zarobki < 40000)

{

double podatek = (zarobki - 20000)*0.3;

System.out.println(podatek);

}

else

{

double podatek = (zarobki - 40000)*0.4;

System.out.println(podatek);

}

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Napisać program sprawdzający 
zakres liczby podanej przez 
użytkownika

Sekwencja programu:

pobranie liczby od użytkownika:

jeżeli jest od 0 do 10 to napisać:

 

'ok'

jeżeli mniejsza od 0 to napisać: 

'za malo'

jeżeli większa od 10: 

'za duzo‘

jeżeli nie podano liczby -

 

'podaj liczbe'

Program – „sprawdzanie liczby”

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public static void main(String[] args)

{

boolean koniec=true;

while

(koniec)

{

System.out.print("Podaj liczbe: ");

Scanner wejscie1 = new Scanner(System.in);

String wej = wejscie1.nextLine();

int liczba = Integer.parseInt(wej);

if

(liczba < 0)

{

System.out.println("Za malo");

}

else

 if(liczba < 10)

{

System.out.println("OK");

koniec = false;

}

else

{

System.out.println("Za duzo");

}

}

}


Document Outline