Nyckelord: while-loopen, villkorsloopar, loopar, iterationssatser
Den här artikeln kommer gå igenom while-loopen i Java som är en villkorsloop som upprepar en kodsekvens så länge ett givet villkor är uppfyllt. Vi kommer börja grundläggande med att gå igenom hur while-loopen fungerar för att sedan fokusera på att lösa exempeluppgifter.
En while-loop i Java är en så kallad villkorsloop. Det innebär att man upprepa en kodsekvens, om och om igen, tills dess att ett villkor är uppfyllt. Med andra ord, man använder while-loopen när man vill upprepa en operation så länge ett villkor är uppfyllt. Istället för att behöva skriva din kod flera gånger om, kan vi istället upprepa ett kodblock flera gånger. Allmänt kan man säga att en while-loop i Java är en upprepning av en eller flera sekvenser som sker så länge ett eller flera villkor är uppfyllda.
While-loopen exekveras om och om igen, så länge som villkoret är uppfyllt (true).
I Java använder man while-loopen för att iterera en sekvens av operationer flera gånger. Det vill säga, man upprepar delar av sitt program flera gånger. Detta möjliggör generella och dynamiska program eftersom kod kan återanvändas ett godtyckligt antal gånger. Om antalet iterationer inte är fixerat är det rekommenderat att använda en while-loop.
En while-loop:
Flödesschemat i figur 1 nedan visar hur en while-loop fungerar
Låt oss titta på vad det är som händer i flödesschemat
While-loopen i Java används för att iterera över ett kodblock så länge villkoret är sant. Vi använder vanligtvis while-loopen när vi inte vet i förväg hur många gånger det ska upprepas. Vidare, en while-loop kommer att fortsätta tills ett förutbestämt scenario inträffar. Det kan hända omedelbart, eller det kan kräva hundra iterationer. Så antalet loopar styrs av ett resultat, inte ett antal. Till exempel, du kan fortsätta loopen tills användaren av programmet trycker på Z-tangenten och loopen kommer hela tiden att köras tills det händer.
While-loopen i Java:
Om vi använder de beståndsdelarna i punktlistan ovan och skriver in i kodeditorn får vi.
while (villkor) { // Operation / Flera operationer ... }
Låt oss ta ett par exempel på hur man kan använda en while-loop i Java.
Nedanstående exempel visar på hur man kan använda while-loopen för att utföra en eller flera operationer medans ett villkor är uppfyllt.
// Deklarerar en variabel med namnet i, som får värdet 0 int i = 0; // Så länge "i" är mindre än 5, ska loppen köras. while(i < 5){ System.out.println("Hello, World!"); // Öka variabeln i varje steg, i = i + 1 i++; }
Vidare, i det här exemplet skriver man ut Hello, World! så länge villkoret är uppfyllt, det vill säga så länge som variabeln i är mindre än 5. Programmet kommer alltså skriva ut textraden Hello, World! fem gånger och sedan avsluta while-loopen:
Hello, World! Hello, World! Hello, World! Hello, World! Hello, World!
Notera, vad hade hänt om inte i++ hade funnits i loopen? Just det, då villkoret alltid kommer vara uppfyllt (noll är alltid mindre än fem) så kommer while-loopen inte att avslutas. Programmet kommer då skriva ut Hello, World! för evigt. Detta är en så kallad evighetsloop som vi tog upp i introduktionen till loopar och riskerar att förstöra programmet. Var därför vaksam så att villkoret alltid blir uppfyllt till slut!
Skulle du vilja testa koden i exemplet online kan du göra det genom att klicka på knappen nedan.
Vi tar ett till relativt enkelt exempel. Det programmet ska göra är att:
public static void main(String[] args) { int large = 2345; int small = 3; while (large > small){ System.out.println("Large = " + large + " och " + "Small = " + small); large = large / 2; small = small * 2; } }
Svaret i det här exemplet blir
Large = 2345 och Small = 2 Large = 1172 och Small = 4 Large = 586 och Small = 8 Large = 293 och Small = 16 Large = 146 och Small = 32 Large = 73 och Small = 64
Vi tar ett tredje och avslutande exempel. I det här exemplet ska vi använda klassen random för att generera ett slumptal. Kommer du inte ihåg hur man använder klassen random för att generera slumptal i Java kan du läsa mer om det här.
Det vi vill att vårt program ska göra är:
// Importerar klassen Scanner import java.util.Random; public class exempel { public static void main(String[] args) { // Skapar en instans av klassen random Random rand = new Random(); // Skapar ett slumpmässigt heltal int randomNum =rand.nextInt(15); // Variabel för antal iterationer int count = 0; // Så länge slumptalet inte är lika med 12 while(randomNum != 12){ System.out.println("Talet är: " + randomNum + ", det är: " + Math.abs(12 - randomNum) + " från målvärd"); // Uppdatera slumptalet randomNum = rand.nextInt(15); // Öka räknarvaribeln med ett count ++; } // Skriv ut antal iterationer System.out.println("Målvärdet tog: " + count + " iterationer"); } }
Vidare, i det här fallet blir det svårt att skriva ut vad svaret kommer bli eftersom vi får olika svar varje gång. Men kopiera gärna koden och testa själv.
Notera att det var ett par vanliga misstag, det finns självklart fler misstag man kan råka göra
Lämna gärna feedback med hjälp av stjärnorna nedan och hjälp oss att fortsätta göra sidan bättre.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!
En while-loop i Java är en så kallad villkorsloop. Det innebär att man upprepa en kodsekvens, om och om igen, tills dess att ett villkor är uppfyllt. Man skapar while-loopen med det reserverade ordet while, följt av ett villkor inom parantes ( ). Efter det specificerar man alla operationer som man vill exekvera (utföra) innanför måsvingarna, { }.
Det är det uttryck som loopen kommer att utvärdera. Så länge det uttrycket är uppfyllt så kommer loopen att utföras. Det kan till exempel vara att en variabel ska vara större eller mindre ett givet värde.
Ja självklart. Det går utmärkt att ställa upp ett villkor att while-loopen ska gå igenom kodblocket ett givet antal gånger. Men för det ändamålet brukar det vara enklare att använda for-loopen som vi ska se på nästa sida.
Ja det går bra. Kom bara ihåg att tänka på att looper kan “fastna” i en evighetsloop så att du är uppmärksam så att programmet kan ta sig vidare.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!