CodeGym /Blog Java /Poland /Java For Loop
Autor
Milan Vucic
Programming Tutor at Codementor.io

Java For Loop

Opublikowano w grupie Poland
Kiedyś Mark Zuckerberg zauważył, że komputery są naprawdę dobre w powtarzaniu poleceń. Dla człowieka nie jest to proste, męczy nas powtarzanie tego samego wiele razy z rzędu, ale komputer może to robić miliony i miliardy razy i nigdy się nie znudzi. Jeśli spróbujesz wysłać pozdrowienia do wszystkich użytkowników Facebooka, nie ma człowieka, który miałby wystarczająco dużo dni, aby to zrobić. Można jednak sprawić, by komputer rozwiązał to zadanie, pisząc kilka linii kodu. Tak właśnie działają pętle. Pozwalają nam nie powtarzać tych samych rutynowych czynności. Najpopularniejszą pętlą w Javie jest tzw. pętla zdefiniowana lub pętla for.

Jak napisać pętlę for w języku Java? Ogólnie o pętli for

Pętla for wykonuje pewne polecenia przez określoną liczbę razy. Na przykład napisanie pięćdziesiąt razy "Nie wolno mi tak, ho-ho, ho" lub wysłanie zaproszeń do wszystkich znajomych to typowe zadania dla tego rodzaju pętli. Składnia najpopularniejszej wersji pętli for:

for ([counter initialization]; [checking conditions]; [changing of the counter])
{
    //  statements
}
Wyrażenie inicjalizacyjne jest wykonywane raz, następnie oceniany jest warunek, który powinien być wyrażeniem boolean.
  • Po rozpoczęciu pętli wykonuje się inicjalizacja.
  • Kiedy warunki oceniają się na false, nasza pętla kończy swoją pracę.
Licznik się zmienia, zwykle inkrementacja (lub dekrementacja) następuje po każdej iteracji przez pętlę. Możesz pominąć dowolne z trzech wyrażeń pętli (inicjalizacja, sprawdzenie warunku, zmiana licznika). Warunek pętli jest sprawdzany przed wykonaniem kolejnego kroku pętli. Jeśli warunek jest fałszywy, program wychodzi z pętli i kontynuuje instrukcję następującą po konstrukcji for. Tutaj mamy schemat blokowy pętli for. Java For Loop - 1

Jak używać pętli for w Javie. Prosty przykład.

Oto konkretny przykład pętli for w Javie. Napiszmy dziesięć razy "Cześć!" String za każdym razem byłby od nowej linii z numerem tej linii. Powinniśmy otrzymać następne wyjście:
  1. Cześć!
  2. Cześć!
  3. Cześć!
  4. Cześć!
  5. Cześć!
  6. Cześć!
  7. Cześć!
  8. Cześć!
  9. Cześć!
  10. Cześć!
Oto nasz program w języku Java, który rozwiązuje ten problem:

public class ForExample {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           System.out.println(i + 1 + ". Hello!");
       }
   }
}

Jak to działa?

Krok 1. Licznik i = 0. Pętla sprawdza nasz warunek, i << 10, stąd wykonywane są instrukcje pętli. Wypisuje on frazę "1. Cześć! 1 to ciąg i + 1 (ponieważ liczyliśmy od zera, ale pierwszy wiersz jest nadal pierwszym). Licznik i jest inkrementowany. Teraz i = 1. Krok 2. Licznik i = 1. i < 10, więc mamy wyrażenie "2. Cześć!" oraz i + 1 = 2. … Krok 10. Licznik i = 9, mamy "10. Cześć!" i i jest inkrementowane do 10. Krok 11. Licznik i = 10. i < 10 ? Nie, to jest fałszywe. W związku z tym pętla zostaje zakończona. Java For Loop - 2

Pętla while i pętla for: różnice i podobieństwa

W Javie pętla nieokreślona lub pętla while jest wykonywana w sposób ciągły, jeśli warunek logiczny jest prawdziwy. Składnia pętli while:

while (boolean condition)
       {
            loop statements...
       }
Dość często możesz wybrać, z której pętli chcesz skorzystać. Czasami są one bardzo blisko i można użyć obu. Na przykład, tutaj jest kod dla tego samego zadania (pisanie dziesięć razy „Cześć!" z numerem linii) napisany z pętlą while:

public class ForAndForEach {
   public static void main(String[] args) {
       int j = 0;  //  we use the counter this way 
       while (j < 10) {
           System.out.println(j + 1 + ". Hello!");
           j++;
       }
   }
}
Jednak profesjonalni programiści nie bardzo lubią pętlę while i wszędzie, gdzie to możliwe, starają się używać pętli for.
FOR WHILE
Pętli for używamy, jeśli znamy już liczbę iteracji. Pętli while używamy, gdy nie znamy dokładnie liczby iteracji.
Inicjalizacja, sprawdzanie warunków i zmiana licznika jest już zaszyta w składni pętli. Inicjalizacja i sprawdzanie warunków wewnątrz pętli. Możesz dodatkowo używać licznika w wypowiedziach.
Nieskończona pętla for:

for(;;){
	System.out.println("working...");
}
Nieskończona pętla while:

while(true){
	System.out.println("working...");
}

Jak wyjść z pętli for w java

Zazwyczaj pętla for działa jak przepływ, a naturalnym sposobem wyjścia z pętli jest sytuacja, w której warunek przyjmuje wartość false. Istnieją jednak dwa polecenia sterujące, które pozwalają wyjść z pętli zanim otrzymamy fałszywą wartość warunku — break i continue.
  • break pozwala wyjść z bieżącego ciała pętli, tak jakby warunek pętli oceniony został na fałsz.
  • continue powoduje, że pętla przeskakuje do następnego kroku (iteracji licznika) bez wykonywania poleceń.
Rozwiążmy kolejny problem używając break i continue. Mamy tablicę imion i witamy się z każdym z tej tablicy oprócz obcych. Jeśli więc podczas naszej pętli napotkamy ciąg "Stranger" to wychodzimy z niego (odchodzimy i przestajemy się witać z kimkolwiek innym).

public class ForBreakExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
//  how to break out of a for loop, java: check if we have any "Stranger" in  //  our array            
if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               break;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Rezultatem wykonania naszego programu jest:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Widzisz? Uciekliśmy z pętli zanim przywitaliśmy się z Lucasem i Willem. Teraz użyjmy kontynuacji, tylko po to, aby zignorować "Stranger", ale pozostać wewnątrz pętli, aby przywitać się z innymi przyjaciółmi.

public class ForContinueExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
           if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Wynik to:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Doskonale! Pozdrawialiśmy wszystkich znajomych, ale nie rozmawialiśmy z nieznajomym. Java For Loop - 3

Rozszerzona wersja pętli for lub for-each

For-each to rodzaj pętli for, która jest używana, gdy trzeba przetworzyć wszystkie elementy tablicy lub kolekcji. Właściwie sam zwrot for-each nie jest używany w tym cyklu. Składnia jest następująca:

for (type itVar: array)
{
    Block of operators;
}
Gdzie type to typ zmiennej iteracyjnej (taki sam jak typ danych tablicy), ItVar to jej nazwa, array to tablica lub może być inna struktura danych, na przykład ArrayList. Jak widać, nie ma licznika, zmienna iteracyjna iteruje po elementach tablicy lub kolekcji, a nie po wartościach indeksów. Podczas wykonywania takiej pętli zmiennej iteracyjnej przypisywana jest sekwencyjnie wartość każdego elementu tablicy lub kolekcji, po czym wykonywany jest określony blok instrukcji (lub operator). Uwaga: pętla for-each może być stosowana do tablic i wszelkich klas implementujących interfejs java.lang.Iterable. Rozwiążmy ten sam problem z witaniem znajomych, ignorowaniem nieznajomych ("Stranger"), ale tym razem użyjmy pętli for-each.

public class ForEachExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
	//  for each loop, Java code
       for (String name : names) {
           if (name.equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("hello, " + name);
       }
   }
}
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION