Slingor är mycket kraftfulla programmeringsverktyg som kommer att slutföra en uppsättning instruktioner tills ett villkor är uppfyllt. De är väldigt praktiska och borde vara ett av de första programmeringskoncepten du lär dig. Det finns många olika typer av slingor, men för loopar är utan tvekan en av de mest användbara looparna.
For Loop i Java
For loops kommer att fortsätta att exekvera ett kodblock tills ett villkor är uppfyllt. Det är viktigt att notera att en for-loop kontrollerar tillståndet i början av loopen, inte slutet. Det betyder att om villkoret är uppfyllt kommer loopen inte att starta.
För loop syntax är liknande över programmeringsspråk. Så om du har skapat en for loop i ett annat programmeringsspråk, kommer en Java for loop att se bekant ut. Men om du inte alls är bekant med Java, rekommenderas det att du läser en nybörjarhandledning innan du lär dig avancerade ämnen som för loopar.
for([statement1]; [condition]; [statement2]){
//code to execute each loop
}
Nyckelordet för indikerar en for-loop. Villkoret som avgör hur länge slingan kommer att fortsätta finns mellan konsolerna.
Den första satsen körs en gång när for-slingan initieras; villkoret definierar när slingan ska sluta.
Den andra satsen exekveras i slutet av varje loop. Semikolon markerar slutet på uttalande 1 och tillståndet.
Vanligtvis används satserna för att skapa en räknare och villkoret stoppar slingan när räknaren når ett specifikt nummer. Slutligen placeras koden som exekveras i varje slinga mellan de krulliga parenteserna.
public class Main{
public static void main(String[] args) {
for(int i = 1; i < 4; i++){
System.out.print(i);
}
}
}
//Output: 123
I exemplet ovan skriver for-slingan ut värdet på i. Nyckelordet för initierar slingan. Variabeln i är initialt satt till 1. Villkoret kontrollerar om i är fyra eller fler. Detta är inte fallet, så vår loop körs. Slingkoden skriver ut värdet på i, vilket fortfarande är 1 vid det här laget.
När loopkoden är klar, i ökas med ett och loopen börjar igen. I slutet av den tredje slingan, i ökas till fyra. När nästa loop börjar är vårt villkor uppfyllt, så loopen stannar.
Kapslad för loop
När du väl fått kläm på en for-loop bör du försöka skapa en kapslad för-loop. Det här är när du har en for-loop inuti en annan for-loop. Detta är en avancerad teknik eftersom det kan vara svårt att förstå hur de två slingorna kommer att interagera. Ett bra sätt att visualisera hur kapslade för loopar fungerar är att skapa följande mönster med en kapslad för loop.
*
**
***
För att skapa detta behöver vi en slinga för att kontrollera hur många stjärnor som skrivs ut på varje rad, och en annan slinga för att kontrollera hur många linjer som ska skapas. När du är ny på Nested for loops kan det vara svårt att avgöra vilken loop som är den inre loopen. I det här fallet är slingan som skriver ut stjärnorna den inre slingan. Vi behöver den slingan för att köras varje gång en ny linje skapas.
När du skapar en kapslad loop, var försiktig när du väljer namnet på dina räknarvariabler. Även om programmerare ofta använder en generisk i räknare, att använda generiska räknare blir förvirrande när flera loopar interagerar.
for(int lineCounter = 1; lineCounter < 4; lineCounter++){
for(int starCounter = 1; starCounter <= lineCounter; starCounter++){
System.out.print("*");
}
System.out.print("
");
}
Låt oss gå igenom det här exemplet för att bättre förstå hur det fungerar.
Vår första loop är att räkna hur många rader vi gör. Efter att slingan har körts tre gånger kommer den att stanna.
Nästa loop är lite mer komplex. Denna loop styr hur många stjärnor som skrivs ut på varje rad. I vårt mönster vill vi ha samma antal stjärnor som radnumret. Den första raden har en stjärna, den andra två och den tredje tre. Så vi vill att den slingan ska skriva ut lika många stjärnor som vår nuvarande radräknare.
Efter att vår stjärnslinga är klar skapar linjeslingan en ny linje genom att skriva ut n, vilket är kommandot för en ny rad.
Oändliga loopar
En av farorna med att koda alla typer av loopar är att du av misstag kan skapa en oändlig loop. Det här är slingor som aldrig slutar. Även om det finns fall då en oändlig slinga behövs, skapas de i allmänhet av en slump när slingans tillstånd inte är noggrant planerat. I dessa fall kommer programmet att fortsätta att köras tills du tvingar det att stängas.
För att skapa en oändlig loop kan du använda följande syntax:
for(;;){
//code that never stops looping
}
Använda en For Loop med en Array
Ett vanligt sätt att använda en for-loop är att iterera genom en array. Om du till exempel vill skriva ut alla strängar i en array kan du inte bara säga
System.out.print([array]);
Detta kommando skulle skriva ut information om arrayen, inte innehållet i arrayen. För att skriva ut innehållet i arrayen måste du skriva ut varje enskilt element i arrayen. Detta skulle vara tidskrävande att koda, men du kan skapa en for-loop för att gå igenom varje element.
String[] words = {"Hello", " ", "World", "!"};
for(int i = 0; i < words.length; i ++){
System.out.print(words[i]);
}
Kom ihåg att arraypositioner börjar på noll, inte en, så vi vill att vår loop ska börja på noll. Vår första slinga kommer att skrivas ut Hej, kommer den andra slingan att skriva ut ett mellanslag och så vidare. Efter den fjärde slingan kommer vår räknare att ökas till fyra, vilket inte är mindre än längden på arrayen, som också är fyra. Detta kommer att stoppa slingan.
Produktion:
Hello World!
För varje slinga
Även om du kan använda en for-loop för att iterera över en array, är det lättare att använda en för varje loop. Dessa slingor är designade speciellt för arrayer. A för varje slinga kommer att gå igenom varje element i en array och exekvera kod. För varje loop har en något annorlunda syntax. Nyckelordet för används fortfarande, men ett villkor är inte specificerat.
for([dataType] [arrayElement] : [array]){
//code to be executed
}
Vårt tidigare exempel kan skrivas om som en för varje slinga med hjälp av denna syntax:
String[] words = {"Hello", " ", "World", "!"};for(String word : words){
System.out.print(word);
}
Slingan startas med nyckelordet för. Vi specificerar sedan att data i vår array är strängar. Därefter väljer vi ett variabelnamn för att referera till elementen i arrayen när vi itererar genom slingan. I det här fallet använde vi ord. Detta följs av ett kolon och namnet på arrayen vi vill iterera igenom. Nu, inne i vår loop, måste vi bara använda variabeln ord för att referera till varje element i arrayen.
När ska man använda en For Loop
For Loops är fantastiska verktyg som kan spara dig mycket kodning. De är den bästa typen av loop att använda när du vet exakt hur många gånger du vill att din loop ska köras. Du kan till och med öka komplexiteten för loopar genom att kapsla dem.
Kapslade för loopar är särskilt praktiska när du arbetar med flerdimensionella arrayer. För loopar är lätta att lära sig och en viktig färdighet för nybörjare. Denna teknik kommer säkerligen att rädda dig från att koda onödig repetitiv kod.
Om författaren
Jennifer Seaton (21 artiklar publicerade)
J. Seaton är en vetenskapsskribent som specialiserat sig på att bryta ner komplexa ämnen. Hon har en doktorsexamen från University of Saskatchewan; hennes forskning fokuserade på att använda spelbaserat lärande för att öka elevernas engagemang online. När hon inte arbetar hittar du henne när hon läser, spelar tv-spel eller trädgårdsarbete.
Mer från Jennifer Seaton
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
