Rozdział 5 - Pętle - Zakres zmiennych w pętlach

W rozdziale o instrukcjach warunkowych zaczęliśmy mówić o zakresie zmiennych.

W poniższym przykładzie, w instrukcji inicjalizującej pętli for, definiujemy zmienną o nazwie i. Czy ten program skompiluje się bez błędów?

Nazwa pliku: WypiszLiczbyOd1Do5ForZakresZmiennej.java
public class WypiszLiczbyOd1Do5ForZakresZmiennej {
  public static void main(String[] args) {
    for (int i = 1; i <= 5; i++) {
      System.out.println(i);
    }

    System.out.println("Po ukonczeniu petli i = " + i);
  }
}

Powyższy program jest niepoprawny, ponieważ zmienna i jest niedostępna po zakończeniu działania pętli – została ona zdefiniowana w ramach pętli for i tylko w niej jest dostępna. Zakres zmiennej i to jedynie ciało pętli for. Po wyjściu z pętli, zmienna o nazwie i przestaje istnieć.

Kompilator wypisze następujący błąd podczas próby kompilacji:

WypiszLiczbyOd1Do5ForZakresZmiennej.java:7: error: cannot find symbol System.out.println("Po ukonczeniu petli i = " + i); ^ symbol: variable i location: class WypiszLiczbyOd1Do5ForZakresZmiennej 1 error

Aby kod zadziałał, musielibyśmy zdefiniować zmienną i przed wykonaniem pętli.

Ta sama zasada odnosi się do zmiennych definiowanych w ciałach pętli while, do...while, for, w instrukcjach warunkowych if, oraz ogólnie w blokach kodu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.