CodeGym /Java Blog /Willekeurig /Java While-lus
John Squirrels
Niveau 41
San Francisco

Java While-lus

Gepubliceerd in de groep Willekeurig
De while- lus is te vinden in bijna elke programmeertaal, en Java is daarop geen uitzondering. While -lus in Java en andere talen voert een instructie of blok met instructies uit zolang de waarde van de voorwaarde die deze heeft geactiveerd waar is. In dit artikel gaan we het hebben over het werken met de while- lus. Java While-lus - 1

Waar zijn cycli voor?

Je allereerste programma's waren een reeks instructies die stap voor stap achter elkaar werden uitgevoerd. Zonder vorken en herhalingen. Later begonnen we takken te gebruiken met behulp van voorwaardelijke operatoren. Welnu, om repetitieve acties uit te voeren, zijn er cycli. Misschien zijn cycli een van de meest voor de hand liggende voordelen voor beginnende programmeurs die procesautomatisering biedt. Stel je voor dat je een tracker-programma moet schrijven dat het aantal stappen op een dag telt. En wanneer u bijvoorbeeld 10.000 stappen passeert, zou het programma u een melding moeten sturen over het bereikte doel. De taak van het afgeven van een melding kan in woorden (of pseudocode) als volgt worden uitgedrukt:

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

Send notification "you have reached the goal"
Dat wil zeggen, zodra het aantal stappen gelijk is aan wat is opgegeven in de voorwaarde, verlaat het programma deze cyclus en stuurt het een melding. Of een ander voorbeeld. Stel je voor dat je een gedicht (of toespraak) moet onthouden. Een gedicht wordt als uit het hoofd geleerd beschouwd als je het drie keer achter elkaar kunt lezen zonder te gluren. Als je je een programma voorstelt dat je pogingen om een ​​gedicht voor te dragen vastlegt, zou het ook een lus moeten gebruiken:

While (success < 3)
learn a poem
Soortgelijke constructies worden gebruikt in alle moderne educatieve apps die bijvoorbeeld worden gebruikt bij het leren van talen of het bespelen van muziekinstrumenten.

While-lus en de structuur ervan

Om problemen zoals de bovenstaande voorbeelden op te lossen, en meer in het algemeen om herhalende acties in Java te automatiseren, kunt u de while- lus gebruiken. Java while -lus zal in ons geval goed werken. Dit ontwerp rangschikt meerdere acties in een beknopte en begrijpelijke structuur. De instructie while- lus is te vinden in bijna alle programmeertalen. Het herhaalt een statement of een blok statements zolang de waarde van de controle-expressie waar is. De vorm van de while- lus is als volgt:

while(condition == true) {
    // statement or loop body
}
De voorwaarde moet een booleaanse uitdrukking zijn, dat wil zeggen een uitdrukking waarvan kan worden gezegd dat deze waar of onwaar is. Hier volgen enkele voorbeelden van booleaanse uitdrukkingen:

s != "exit";
a > 5;
true;
De hoofdtekst van de lus wordt uitgevoerd zolang de voorwaardelijke expressie waar is. Wanneer de voorwaarde onwaar wordt, wordt de besturing overgebracht naar de coderegel die na de lus komt. Als er maar één statement in de lus wordt gebruikt, kunnen accolades worden weggelaten (maar het is beter om dit niet te doen). De logische expressie wordt geëvalueerd voor het begin van de while- lus, en vervolgens elke keer voordat de volgende herhaling van de instructie wordt uitgevoerd.

While Loop-voorbeelden

Laten we een programma schrijven om alle getallen van 1 tot 10 op te tellen met behulp van een while- lus:

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);
   }
}
De uitvoer is:
55
We moeten de som van alle getallen berekenen van 1 (of van nul, het maakt niet uit) tot 10. We maken de beginsom en het eerste element gelijk aan nul, en we verhogen het element met één bij elke passage van de lus. We blijven optellen totdat het argument gelijk wordt aan 10 (dat wil zeggen, minder dan 11. Op dezelfde manier kunnen we de voorwaarde i <= 10 schrijven ). Laten we nog een voorbeeld van een Java while- lus nemen. We gaan een programma schrijven waarin gebruikers positieve gehele getallen invoeren. Als ze nul of een negatief getal invoeren, zou het programma dit moeten melden en de klus moeten klaren.

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");
   }
}
U kunt het programma verbeteren en er iets aan toevoegen, bijvoorbeeld door te controleren of de gebruiker precies een getal heeft ingevoerd en niet een ander teken, of dat het getal een geheel getal is.

doe-terwijl lus

De klassieke while- lus, zoals in de voorbeelden hierboven, controleert onmiddellijk of de voorwaarde waar is. Daarom kan het een cyclus met een voorwaarde worden genoemd. De while- lus heeft een broer do-while, een lus met een postcondition. Dat wil zeggen, voordat de test van de waarheid van de voorwaarde plaatsvindt, zal zo'n lus minstens één keer worden uitgevoerd:

do {
     // Loop body - periodically executed statement(s)
}while(Boolean expression);
Dus het eerste voorbeeld met zo'n lus ziet er als volgt uit:

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);
   }
}

Eindeloze cyclus

De while- lus kan worden gebruikt om oneindige lussen te organiseren in de vorm while(true) : Hier is bijvoorbeeld een programma dat eindeloos (met enkele nuances) een reeks gehele getallen afdrukt:

public class EndlessLoop {
    public static void main(String[] args) {
        int i = 0;
        while (true) {
            System.out.println(i++);
        }
    }
}
Om te versterken wat je hebt geleerd, raden we je aan een videoles van onze Java-cursus te bekijken
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION