Looping i programmeringsspråk är en funktion som underlättar exekveringen av en uppsättning instruktioner/funktioner upprepade gånger medan vissa villkor utvärderas till sanna. Java tillhandahåller tre sätt att exekvera looparna. Även om alla sätt ger liknande grundläggande funktionalitet, skiljer de sig åt i sin syntax och tid för tillståndskontroll.
java tillhandahåller tre typer av villkorliga uttalanden, denna andra typ är loop-sats.
jämförbart gränssnitt i java
- medan loop: En while loop är en kontrollflödessats som gör att kod kan exekveras upprepade gånger baserat på ett givet booleskt tillstånd. While-slingan kan ses som en repeterande if-sats.
Syntax :
while (boolean condition) { loop statements... }>
Java
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main (String[] args) {> > int> i=> 0> ;> > while> (i<=> 10> )> > {> > System.out.println(i);> > i++;> > }> > }> }> |
>
>Produktion
0 1 2 3 4 5 6 7 8 9 10>
- Flödesschema:
- While loop börjar med kontrollen av booleskt tillstånd. Om det utvärderades till sant, exekveras loopkroppssatserna annars exekveras den första satsen efter slingan. Av denna anledning kallas det också Ingångskontrollslinga
- När villkoret har utvärderats till sant, exekveras satserna i loopkroppen. Normalt innehåller satserna ett uppdateringsvärde för variabeln som bearbetas för nästa iteration.
- När villkoret blir falskt avslutas slingan vilket markerar slutet på dess livscykel.
- för loop: for loop ger ett kortfattat sätt att skriva loopstrukturen. Till skillnad från en while-loop, förbrukar en for-sats initieringen, villkoret och ökningen/minskningen på en rad och ger därmed en kortare struktur för looping som är lätt att felsöka.
Syntax:
for (initialization condition; testing condition;increment/decrement) { statement(s) }>
Java
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main (String[] args) {> > for> (> int> i=> 0> ;i<=> 10> ;i++)> > {> > System.out.println(i);> > }> > }> }> |
>
>Produktion
0 1 2 3 4 5 6 7 8 9 10>
- Flödesschema:
- Initieringsvillkor: Här initierar vi variabeln som används. Det markerar början på en for-loop. En redan deklarerad variabel kan användas eller en variabel kan deklareras, endast lokal till loop. Testvillkor: Det används för att testa utgångsvillkoret för en slinga. Den måste returnera ett booleskt värde. Det är också en Entry Control Loop eftersom villkoret kontrolleras före exekvering av loop-satserna. Utförande av uttalande: När villkoret har utvärderats till sant, exekveras satserna i loopkroppen. Öka/minska: Den används för att uppdatera variabeln för nästa iteration. Slingavslutning: När villkoret blir falskt, avslutas slingan och markerar slutet på dess livscykel.
- göra medan: do while loop liknar while loop med den enda skillnaden att den söker efter tillstånd efter exekvering av satserna, och är därför ett exempel på Avsluta kontrollslingan.
Syntax:
do { statements.. } while (condition);>
Java
genericitet i java
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main (String[] args) {> > int> i=> 0> ;> > do> > {> > System.out.println(i);> > i++;> > }> while> (i<=> 10> );> > }> }> |
>
>Produktion
0 1 2 3 4 5 6 7 8 9 10>
- Flödesschema:
- do while loop börjar med exekvering av satsen/satserna. Det görs ingen kontroll av något tillstånd för första gången.
- Efter exekvering av satserna och uppdatering av variabelvärdet kontrolleras villkoret för sant eller falskt värde. Om det utvärderas till sant, startar nästa iteration av slingan.
- När villkoret blir falskt avslutas slingan vilket markerar slutet på dess livscykel.
- Det är viktigt att notera att do-while loop kommer att exekvera sina programsatser minst en gång innan något villkor kontrolleras, och är därför ett exempel på exit control loop.
Fallgropar av loopar
- Oändlig loop: Ett av de vanligaste misstagen när man implementerar någon form av looping är att den kanske aldrig avslutas, det vill säga loopen löper i oändlig tid. Detta händer när tillståndet misslyckas av någon anledning. Exempel: Oändligt för loop :
Java
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > for> (;;) {> > }> > }> }> |
>
>
oändlig while loop:
Java
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main (String[] args) {> > while> (> true> )> > {> > // statement> > }> > > }> }> |
>
mushjulet rullar inte ordentligt
>
Java
//Java program to illustrate various pitfalls.> public> class> LooppitfallsDemo> {> > public> static> void> main(String[] args)> > {> > // infinite loop because condition is not apt> > // condition should have been i>0.> > for> (> int> i => 5> ; i !=> 0> ; i -=> 2> )> > {> > System.out.println(i);> > }> > int> x => 5> ;> > // infinite loop because update statement> > // is not provided.> > while> (x ==> 5> )> > {> > System.out.println('In the loop');> > }> > }> }> |
>
>
En annan fallgrop är att du kanske lägger till något i ditt samlingsobjekt genom loop och du kan få slut på minne. Om du försöker köra programmet nedan, kommer ett undantag för slut på minne att kastas efter en tid.
Java
//Java program for out of memory exception.> import> java.util.ArrayList;> public> class> Integer1> {> > public> static> void> main(String[] args)> > {> > ArrayList ar => new> ArrayList();> > for> (> int> i => 0> ; i { ar.add(i); } } }> |
>
>
Produktion:
Exception in thread 'main' java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.util.Arrays.copyOf(Unknown Source) at java.util.ArrayList.grow(Unknown Source) at java.util.ArrayList.ensureCapacityInternal(Unknown Source) at java.util.ArrayList.add(Unknown Source) at article.Integer1.main(Integer1.java:9)>
Kapslad loop:
Kapslad loop betyder en loop-sats inuti en annan loop-sats.
Det finns olika kombinationer av loop med för slinga, medan slinga, göra medan slinga.
Ex.1 Kapslad för loop
Java
mark zuckerberg utbildning
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main (String[] args) {> > for> (> int> i => 0> ; i <> 3> ; i++){> > for> (> int> j => 0> ; j <> 2> ; j++){> > System.out.println(i);> > }> > System.out.println();> > }> > }> }> |
>
>Produktion
0 0 1 1 2 2>
Ex.2 Kapslad medan loop
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> i => 1> , j => 1> ;> > while> (i <=> 3> ) {> > while> (j <=> 3> ) {> > System.out.print(j);> > j++;> > }> > i++;> > System.out.println(> ''> );> > j => 1> ;> > }> > }> }> |
>
>Produktion
123 123 123>
Ex.3 Kapslad do while loop
Java
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> row => 1> , column => 1> ;> > int> x;> > do> {> > x => 4> ;> > do> {> > System.out.print(> ''> );> > x--;> > }> while> (x>= rad);> > column => 1> ;> > do> {> > System.out.print(column +> ' '> );> > column++;> > }> while> (column <=> 5> );> > System.out.println(> ' '> );> > row++;> > }> while> (row <=> 5> );> > }> }> |
>
>Produktion
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5>
Ex.4 Kapslad medan och för loop
Java
hur man blockerar YouTube-annonser på Android
/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> weeks => 3> ;> > int> days => 7> ;> > int> i => 1> ;> > // outer loop> > while> (i <= weeks) {> > System.out.println(> 'Week: '> + i);> > // inner loop> > for> (> int> j => 1> ; j <= days; ++j) {> > System.out.println(> ' Days: '> + j);> > }> > ++i;> > }> > }> }> |
>
>Produktion
Week: 1 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7 Week: 2 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7 Week: 3 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7>