logo

Slingor i Java

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: för-loop-i-java
    • 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:
    göra medan
      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>