Rozdział 5 - Pętle - Podsumowanie

  • Pętle służą do wykonywania instrukcji tak długo, jak określony warunek jest prawdziwy.
  • Każdy obieg pętli nazywamy iteracją.
  • Java posiada cztery rodzaje pętli: while, do...while, for, for-each (pętla for-each omówiona jest w rozdziale o tablicach).
  • Pętla while wykonuje się, dopóki jej warunek jest spełniony:
    while (warunek) {
      instrukcja1;
      instrukcja2;
      // ...
      instrukcjaN;
    }
    
  • Jeżeli warunek na wstępie pętli while nie będzie prawdziwy, to pętla nie wykona się ani razu.

  • Pętla do...while zawsze wykona swoje instrukcje co najmniej raz, niezależnie od tego, czy jej warunek jest na wstępie spełniony, czy nie, ponieważ warunek jej zakończnia sprawdzany jest na końcu każdej iteracji. Składnia pętli do...while jest następująca:
    do {
      instrukcja1;
      instrukcja2;
      // ...
      instrukcjaN;
    } while (warunek);
    
  • Pętla for posiada trzy elementy:
    for (instrukcja_inicjalizująca; warunek; instrukcja_kroku) {
      instrukcja1;
      instrukcja2;
      // ...
      instrukcjaN;
    }
    
    • instrukcję inicjalizującą – jest to instrukcja (bądź instrukcje rozdzielone przecinkami) wykonywana jednorazowo, jeszcze przed rozpoczęciem pętli,
    • warunek – jest to wyrażenie obliczane przed każdym obiegiem (iteracją) pętli – jeżeli jest prawdą (true), to wykonane zostaje ciało pętli,
    • instrukcja_kroku – jest to instrukcja wykonywana zaraz po zakończeniu każdego obiegu pętli.
  • Podobnie jak w przypadku instrukcji warunkowych, zmienne zdefiniowane w pętlach nie są dostępne po zakończeniu pętli:
    for (int z = 0; z <= 20; z += 2) {
      System.out.print(z + " ");
    }
    
    // spowoduje blad kompilacji - zmienna z juz tutaj nie istnieje!
    System.out.println("z na koncu jest rowne " + z);
    
  • Instrukcja break służy do przerwania aktualniej wykonującej się pętli. Uwaga: jeżeli pętla jest zagnieżdżona w innej pętli, to przerwana zostanie jedynie zagnieżdżona pętla.
  • Instrukcja continue służy do przerwania aktualnie wykonującego się obiegu pętli i przejście do kolejnego obiegu (o ile warunek pętli jest spełniony). Uwaga: jeżeli pętla jest zagnieżdżona w innej pętli, to przerwany zostanie jedynie obieg zagnieżdżonej pętla.
  • Można zastosować etykiety pętli, by wskazać, do której pętli odnosi się instrukcja break lub continue:
    glowna_petla: for (int i = 0; i < 3; i++) {
      for (int j = 0; j < 5; j++) {
        System.out.print(j + ", ");
    
        if (j == 1) break glowna_petla;
      }
      System.out.println();
    }
    
  • Instrukcji break oraz continue można używać w każdym rodzaju pętli: for, while, do..while, oraz for-each.

  • Używając typu String, możemy sprawdzić, jaki znak jest na danej pozycji – służy do tego metoda charAt, której podajemy indeks znaku, który chcemy poznać. Uwaga: indeks pierwszego znaku to 0, a nie 1! Przykład:
    String tekst = "Ala ma kota";
    
    // na ekranie zobaczymy tekst: A l a  m a  k o t a 
    for (int i = 0; i < tekst.length(); i++) {
      System.out.print(tekst.charAt(i) + " ");
    }
    
  • Metoda charAt zwraca wartość typu podstawowego char – jeżeli chcemy sprawdzić taką wartość, to porównujemy ją za pomocą operatora ==. Dla przykładu, aby sprawdzić, czy 'A' jest pierwszą literą poniższej zmiennej:
    String tekst = "Ala ma kota";
    
    powinniśmy skorzystać z warunku tekst.charAt(0) == 'a'.
  • Metoda length typu String zwraca liczbę znaków, z których składa się zmienna typu String. Dla przykładu, dla powyższej zmiennej tekst, użycie tekst.length() zwraca 11.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.