CodeGym /Blog Java /Random-PL /Pętla Javy while
Autor
Alex Vypirailenko
Java Developer at Toshiba Global Commerce Solutions

Pętla Javy while

Opublikowano w grupie Random-PL
Pętla while występuje w prawie każdym języku programowania, a Java nie jest wyjątkiem. Pętla while w Javie i innych językach wykonuje instrukcję lub blok instrukcji, o ile wartość warunku, który ją wyzwoliła, jest prawdziwa. W tym artykule porozmawiamy o tym, jak pracować z pętlą while . Pętla Java while — 1

Po co są cykle?

Twoje pierwsze programy były sekwencją instrukcji wykonywanych krok po kroku, jedna po drugiej. Bez rozwidleń i powtórzeń. Później zaczęliśmy używać gałęzi z pomocą operatorów warunkowych. Cóż, aby wykonywać powtarzalne czynności, istnieją cykle. Być może cykle są jedną z najbardziej oczywistych korzyści dla początkujących programistów, jaką zapewnia automatyzacja procesów. Wyobraź sobie, że musisz napisać program śledzący, który zlicza liczbę kroków zrobionych w ciągu dnia. A kiedy przejdziesz np. 10 000 kroków, program powinien wysłać Ci powiadomienie o osiągniętym celu. Zadanie wystawienia powiadomienia można wyrazić słowami (lub pseudokodem) w następujący sposób:

While (number of steps less than 10,000)
{
Count steps
}

Send notification "you have reached the goal"
Oznacza to, że gdy tylko liczba kroków jest równa liczbie określonej w warunku, program wychodzi z tego cyklu i wysyła powiadomienie. Albo inny przykład. Wyobraź sobie, że musisz zapamiętać wiersz (lub przemówienie). Wiersz uważa się za zapamiętany, jeśli możesz przeczytać go trzy razy z rzędu bez zaglądania. Jeśli wyobrażasz sobie program, który przechwytuje twoje próby recytowania wiersza, musiałby również użyć pętli:

While (success < 3)
learn a poem
Podobne konstrukcje stosowane są we wszystkich nowoczesnych aplikacjach edukacyjnych, które służą np. do nauki języków czy gry na instrumentach muzycznych.

Pętla while i jej struktura

Aby rozwiązać problemy, takie jak powyższe przykłady, a bardziej ogólnie, aby zautomatyzować powtarzalne działania w Javie, możesz użyć pętli while . Pętla while w Javie będzie działać dobrze w naszym przypadku. Ten projekt organizuje wiele działań w zwięzłej i zrozumiałej strukturze. Instrukcja pętli while występuje w prawie wszystkich językach programowania. Powtarza instrukcję lub blok instrukcji, dopóki wartość jej wyrażenia sterującego jest prawdziwa. Forma pętli while jest następująca:

while(condition == true) {
    // statement or loop body
}
Warunek musi być wyrażeniem boolowskim, czyli takim, o którym można powiedzieć, że jest prawdziwe lub fałszywe. Oto kilka przykładów wyrażeń boolowskich:

s != "exit";
a > 5;
true;
Ciało pętli będzie wykonywane tak długo, jak długo wyrażenie warunkowe będzie prawdziwe. Kiedy warunek staje się fałszywy, sterowanie jest przekazywane do wiersza kodu, który następuje po pętli. Jeśli w pętli używana jest tylko jedna instrukcja, to nawiasy klamrowe można pominąć (ale lepiej tego nie robić). Wyrażenie logiczne jest oceniane przed rozpoczęciem pętli while , a następnie za każdym razem przed wykonaniem kolejnego powtórzenia instrukcji.

Przykłady pętli while

Napiszmy program, który sumuje wszystkie liczby od 1 do 10 za pomocą pętli while :

public class WhileTest0 {
   public static void main(String[] args) {
       int i = 0;
       int sum = 0;
   //while loop     
   while (i < 11) {
           sum = sum + i;
           i++;
       }
       System.out.println(sum);
   }
}
Dane wyjściowe to:
55
Musimy obliczyć sumę wszystkich liczb od 1 (lub od zera, to nie ma znaczenia) do 10. Sumę początkową i pierwszy element ustalamy jako zero i będziemy zwiększać element o jeden za każdym przejściem pętla. Będziemy kontynuować sumowanie, aż argument będzie równy 10 (czyli mniejszy niż 11. Podobnie moglibyśmy zapisać warunek i <= 10 ). Weźmy inny przykład pętli while w Javie . Zamierzamy napisać program, w którym użytkownicy wprowadzają dodatnie liczby całkowite. Jeśli wprowadzą zero lub liczbę ujemną, program powinien to zgłosić i zakończyć zadanie.

import java.util.Scanner;

public class WhileTest {
   public static void main(String[] args) {
       int positiveNumber = 1;
       Scanner scanner = new Scanner(String.valueOf(positiveNumber));
       while (positiveNumber > 0) {
           Scanner sc = new Scanner(System.in);
           System.out.println("Enter positive number:");
           positiveNumber = sc.nextInt();
           System.out.println("ok, next");
       }
       System.out.println("The number should be positive");
   }
}
Możesz ulepszyć program i dodać do niego np. sprawdzenie, czy użytkownik wprowadził dokładnie liczbę, a nie jakiś inny znak, lub czy liczba jest liczbą całkowitą.

pętla do-while

Klasyczna pętla while , podobnie jak w powyższych przykładach, natychmiast sprawdza, czy warunek jest prawdziwy. Dlatego można go nazwać cyklem z warunkiem wstępnym. Pętla while ma bratnią pętlę do-while z warunkiem końcowym. Oznacza to, że zanim nastąpi test prawdziwości warunku, taka pętla zostanie wykonana co najmniej raz:

do {
     // Loop body - periodically executed statement(s)
}while(Boolean expression);
Tak więc pierwszy przykład z taką pętlą wyglądałby tak:

public class WhileTest0 {
   public static void main(String[] args) {
       int i = 0;
       int sum = 0;
       do
        {
           sum = sum + i;
           i++;
       } while (i < 11);
       System.out.println(sum);
   }
}

Niekończący się cykl

Pętli while można używać do organizowania nieskończonych pętli w postaci while(true) : Na przykład, oto program, który w nieskończoność (z pewnymi niuansami) wypisuje serię liczb całkowitych:

public class EndlessLoop {
    public static void main(String[] args) {
        int i = 0;
        while (true) {
            System.out.println(i++);
        }
    }
}
Aby utrwalić to, czego się nauczyłeś, zalecamy obejrzenie lekcji wideo z naszego kursu języka Java
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION