Spis treści
Spójrzmy na dwa przykłady kodu zapisane za pomocą każdego z rodzajów pętli.
Wyświetlanie kwadratu podanej liczby¶
Poniższe fragmenty programów (które są treścią metod main) wykonują to samo zadanie używając różnych rodzajów pętli:
- pobierają od użytkownika jedną liczbę,
- wypisują jej kwadrat,
- pytają użytkownika, czy chce zakończyć działanie programu.
Pętla while:
int x; String czyKoniec = "n"; while (!czyKoniec.equals("t")) { System.out.print("Podaj liczbe: "); x = getInt(); System.out.println("Kwadrat tej liczby wynosi: " + (x * x)); System.out.print("Czy chcesz zakonczyc program? [t/n] "); czyKoniec = getString(); }
W powyższym przykładzie musieliśmy przypisać zmiennej czyKoniec wstępną wartość inną niż "t", ponieważ w przeciwnym razem pętla nie wykonałaby się ani razu.
Pętla do..while:
int x; String czyKoniec; do { System.out.print("Podaj liczbe: "); x = getInt(); System.out.println("Kwadrat tej liczby wynosi: " + (x * x)); System.out.print("Czy chcesz zakonczyc program? [t/n] "); czyKoniec = getString(); } while (!czyKoniec.equals("t"));
W tym przykładzie pętla wykona się co najmniej raz, więc wartość zmiennej czyKoniec możemy nadać pod koniec każdej iteracji pętli.
Pętla for:
String czyKoniec = "n"; for (int x; !czyKoniec.equals("t"); czyKoniec = getString()) { System.out.print("Podaj liczbe: "); x = getInt(); System.out.println("Kwadrat tej liczby wynosi: " + (x * x)); System.out.print("Czy chcesz zakonczyc program? [t/n] "); }
W tej wersji programu, w instrukcji inicjalizującej pętlę, definiujemy zmienną x, do której będziemy przypisywać liczbę pobraną od użytkownika. W instrukcji kroku wstawiliśmy przypisanie do zmiennej czyKoniec informacji podanej przez użytkownika, czy chce on zakończyć działanie programu.
Wypisanie kolejnych liczb parzystych¶
Poniższe fragmenty kodów wypisują kolejne liczby parzyste mniejsze bądź równe 20.
Pętla while:
public class WypiszParzysteWhile { public static void main(String[] args) { int x = 0; while (x <= 20) { System.out.print(x + " "); x += 2; } System.out.println(); // wypisz pusta linie System.out.println("x na koncu jest rowne " + x); } }
Przykładowy wynik działania powyższego programu:
Pętla do..while:
public class WypiszParzysteDoWhile { public static void main(String[] args) { int x = 0; do { System.out.print(x + " "); x += 2; } while (x <= 20); System.out.println(); // wypisz pusta linie System.out.println("x na koncu jest rowne " + x); } }
Powyższy program wypisuje na ekran dokładnie takie same dane, jak przykład z pętlą while.
Pętla for:
public class WypiszParzysteFor { public static void main(String[] args) { for (int x = 0; x <= 20; x += 2) { System.out.print(x + " "); } // spowoduje blad kompilacji - zmienna x juz tutaj nie istnieje! //System.out.println("x na koncu jest rowne " + x); } }
Każda z pętli ma takie samo zadania – wypisanie liczb parzystych od 0 do 20 (włącznie). Na końcu wypisujemy też wartość zmiennej x po zakończeniu każdej pętli – poza ostatnim programem, w którym korzystamy z pętli for.
Należy zwrócić uwagę, że w przypadku pętli for, użyta zmienna nie istnieje poza pętlą i dlatego ostatnia linijka musi być zakomentowana – inaczej program by się w ogóle nie skompilował.