Java >> Java tutorial >  >> Java

Java til loop med eksempler

Er det rigtigt at sige, at en god programmør skal have en dyb forståelse af loops? Det kan være et ja eller nej spørgsmål, men det mangler også mening uden begrundelse. Kort sagt, hvad er loops? En loop er et program, der gentager/gentager flere gange, indtil en bestemt betingelse er opfyldt. Sløjfer forbliver de samme, uanset hvilket programmeringssprog du bruger.

Formålet med sløjfer

Lad os sige, at du skal vise en besked 500 gange, og det er meget trættende og tidskrævende at skrive den samme besked 500 gange, hvorfor loops er så vigtige. Du kan skrive beskeden én gang og gå igennem 499 gange inden for kun et par linjer kode. Dette er løkkernes kraft.
Eksempel :

package javaforloops;

public class JavaForLoops {
    public static void main(String[] args)
    {
        System.out.println("=====Using normal program ======");
        int numbers; 
        numbers = 1; 
        System.out.println(numbers); 
        numbers=2; 
        System.out.println(numbers); 
        numbers=3; 
        System.out.println(numbers); 
        numbers=4; 
        System.out.println(numbers); 
        numbers=5; 
        System.out.println(numbers); 
        
        //using java for loop
        System.out.println("======Using for Loop=======");

    for(int i=1;i<=5;i++)
    {
        System.out.println(i);
    }
    }
    
}

Output:

run:
=====Using normal program ======
1
2
3
4
5
======Using for Loop=======
1
2
3
4
5
BUILD SUCCESSFUL (total time: 0 seconds)

I ovenstående kode viser det første afsnit en normal java-kode med nej for loop, mens den anden del bruger for loop til at udskrive de samme resultater. Hvad er nogle af ulemperne ved ikke at bruge for-løkken?

  • Gentagelse af kode :Det er godt og anbefales at undgå kodegentagelse så meget som muligt som en god programmør. Hvad hvis vi havde 100 beskeder? Vi vil gentage den samme besked 100 gange; dette er en unødvendig kode.
  • Fast kode:Koden er fastsat til kun at udskrive 1-5. Hvis vi har brug for et bestemt mønster, vil vi skrive et andet program igen med en fast struktur skrevet gentagne gange.
  • Skalerbarhed:Koden er ikke skalerbar. Hvis vi skal udskrive 1-10, tilføjer vi 5 kodelinjer mere og bruger for-løkken. Vi behøver kun at ændre området til 10. For-løkken er meget skalerbar.

Typer af løkker

Der er 3 typer sløjfer.

  • Til sløjfe
  • Mens loop
  • Do-while loop

Vi bruger en for en loop, når vi kender det specifikke antal gange, vi skal gentage en kodeblok, og en while-løkke, når vi ikke er sikre på, hvor mange gange vi skal gå gennem en kodeblok. Vi bruger det til en do-while-løkke, når vi skal udføre løkken mindst én gang.

Med den smule introduktion, lad os vide, grave ind i java for loop.

Java for Loop.

Som vi nævnte tidligere, bruger vi java til en løkke, når vi ved det nøjagtige antal gange, du skal gå gennem en kodeblok.

Syntaks for java for loop

for (statement 1; statement 2; statement 3)
{
  //The java for loop code to be executed goes here
}

Javatyper til loops

Der er 3 typer for loops i java. Disse omfatter
1. Simpel for loop
2. For-hver sløjfe/forbedret for sløjfe
3. Mærket til loop

Simpelt for loop

Syntaks for en simpel for loop

for(initialization; condition; increment/decrement)
{
  //the code of the simple for loop goes here
}

Initialisering: Dette er den første del af java for loop, som vi erklærer og initialiserer en variabel ved at tildele den en værdi. Det er startbetingelsen, der udføres én gang før for-løkke-blokken for kodeudførelse.
Eksempel:

Int k = 0;

Tilstand: Dette er den anden del, der danner betingelsen, den returnerer en boolsk værdi 'sand' eller 'falsk'. Dette betyder, at hvis betingelsen er sand, vil løkken starte forfra, og hvis betingelsen er falsk, afsluttes løkken.
Eksempel:

K <= 100; or K >= 100;

Forøg/reducer: Dette er den del, der tilføjer værdier eller mindsker værdier i for-løkken. Den udføres hver gang efter blokken med kodeudførelse.
Eksempel:

//Increment
K++
//decrement
K--

Flowdiagram for en simpel java for loop

Eksempel på Java Simple For Loop

package javaforloops;

public class JavaForLoops {
    public static void main(String[] args)
    {
    for(int i=0;i<=2;i++)
    {
        System.out.println("I Have Understood a simple java for loop");
    
    }
    }
    
}

Output:

run:
I Have Understood a simple java for loop
I Have Understood a simple java for loop
I Have Understood a simple java for loop
BUILD SUCCESSFUL (total time: 0 seconds)

I ovenstående simple java for loop eksempel, i initialiseringsdelen, har vi erklæret en variabel i og initialiserede den til 0. Så det kommer til loop body for at udskrive "Jeg har forstået en simpel Java for loop", når betingelsen er mindre end eller lig med 2, og derefter flyttes den for at øge en værdi med 1.

Antag, at resultatet i betingelsesdelen er sandt. Sløjfen udskriver meddelelsen og øger dens værdi med 1. Når betingelsen er falsk, i=3 og 3<=2 (er falsk), afsluttes løkken.

Til tider kan du have mere end ét argument i tilstandsdelen for at kontrollere tilstanden. Vi kan ikke adskille de to betingelser med et komma, men vi kan bruge 'OG' eller 'ELLER' konjunktionerne.

package javaforloops;

public class JavaForLoops {
    public static void main(String[] args)
    {
        int b = 4, c = 5;
    System.out.println("=== Conjuction AND ===");
    for(int a=2;a<=b && a<=c ;a++)
    {
        System.out.println("Hello java");
    
    }
    System.out.println("=== Conjuction OR ===");
    for(int a=4;a<=b || a<=c ;a++)
    {
        System.out.println("Hello java");
    
    }
    }
    
}

Output:

run:
=== Conjuction AND ===
Hello java
Hello java
Hello java
=== Conjuction OR ===
Hello java
Hello java
BUILD SUCCESSFUL (total time: 0 seconds)

For-each for loop/Enhanced for loop

For at sløjfe gennem elementer i et array eller en samling bruger vi en for-hver-løkke eller en forbedret for-løkke. I denne løkke kræver vi ikke den trinvise/dekrementelle del.

Syntaks

//array
for(variable type : array)
{
//code to be executed
}
//collection
for(object var :Collection )
{
//code to be executed
}

Eksempel på en forbedret for loop

package javaforloops;
public class JavaForLoops {
    public static void main(String[] args)
    {  
	int arr[]={100,101,102,103,110};  
	//Printing array using for-each loop  
	for(int array:arr){  
	 System.out.println(array);  
	}
    } 
}

Output:

run:
100
101
102
103
110
BUILD SUCCESSFUL (total time: 0 seconds)

Er der nogen fordele ved at sløjfe gennem et array ved hjælp af en forbedret for loop i stedet for en simpel java for loop? En forbedret java for loop forenkler arbejdet, men den er uforanderlig. I en simpel for-løkke kan du ændre værdierne inde i løkken, men i en forbedret for-løkke er objektet, der bruges til at transversere, uforanderligt. Lad os se på dette ved at bruge et eksempel.

package javaforloops;

public class JavaForLoops {
    public static void main(String[] args)
    {  
	 String array[] = { "Java", "Python", "Html", "Machine Learning" }; 
        // enhanced for loop 
        for (String languages : array) { 
            System.out.println(languages); 
        } 
        // for loop for same function  
        for (int languages = 0; languages < array.length; languages++)  
        {  
            System.out.println(array[languages]);  
        }  
    }
}

Java mærket til loop

I en indlejret for-løkke kan vi beslutte at have et navn til java for loops. Vi bruger en etiket før løkken, og denne danner den java, der er mærket for en løkke. Det bruges for det meste indlejret til løkke for at bryde eller fortsætte fra den specifikke "for"-løkke ved hjælp af etiketten.

Syntaks

LabelName:
for(initialization; condition; increment/decrement)
{
//code to be executed
}

Eksempel af en mærket for loop

package javaforloops;

public class JavaForLoops {
    public static void main(String[] args)
    {    
       Loop1:  
       for(int i=1;i<=2;i++){  
              Loop2:  
                  for(int j=1;j<=2;j++){  
                      if(i==2 && j==2){  
                          break Loop1;  
                      }  
                      System.out.println(i+" "+j);  
                  }  
    }
    }   
}

Java Infinitive for loop

Java-infinitiv for loop-kode kører kontinuerligt uden ende, indtil hukommelsen løber tør.
Til tider bruger vi (;;) til at angive java infinitiv java for loop. Betingelsesdelen vil aldrig returnere falsk for at løkken afsluttes.
Eksempel:

package javaforloops;
public class JavaForLoops {
    public static void main(String[] args)
    {    
        for(int k =2 ; k >= 2; k++){
              System.out.println("The value of i is: "+k);
         }

    }   
}

Initialiseringsdelen erklærer en variabel K og initialiserer den til 2. Så kontrollerer vi, om værdien af ​​K er lig med eller større end K. Da vi øger værdien af ​​K, ville den altid være større end 2; derfor ville det boolske udtryk (K>=2) aldrig returnere falsk. Dette vil føre til en infinitiv loop-tilstand.

Java Nested for Loop

Dette sløjfer inde i en anden løkke. For at den ydre løkke kan udføres, skal den indre løkke udføres fuldstændigt.
Eksempel:

package javaforloops;
public class JavaForLoops {
    public static void main(String[] args)
    {    
       	for(int i=1;i<=5;i++)
        {  
	for(int k=1;k<=i;k++)
        {  
	        System.out.print("* ");  
	}  
	System.out.println(); 
	}  
    }   
}

I ovenstående eksempel initialiserer vi i i den første loop til 1, udskriver løkken en ny linje, så længe linjerne er mindre end eller lig med fine (i<=5). I den indlejrede sløjfe initialiserer vi k til 1. Sløjfen udføres og udskrives (*) så længe k<=i. vi lukker den indvendige løkke, før vi lukker den ydre løkke. Det er vigtigt at indlejre løkkerne for at få det ønskede output.

Sådan bruges fortsæt i java for loop.

Fortsæt-sætningen bruges for det meste til at løkke skal springe straks til begyndelsen af ​​næste iteration af løkken.


Eksempel

package javaforloops;
public class JavaForLoops {
    public static void main(String[] args)
    {    
     int [] numbers = {1, 2, 3, 4, 5};

      for(int k : numbers ) {
         if( k == 4 ) {
            continue;
         }
         System.out.println( k );
         
      }
  
    }   
}

Output:

run:
1
2
3
5
BUILD SUCCESSFUL (total time: 0 seconds)

Fra outputtet af koden ovenfor mangler outputværdien 4, men alligevel har vi initialiseret den i vores array. Dette skyldes, at når koden eksekveres, og når continu-sætningen stødes på, hopper den i begyndelsen af ​​løkken for den næste iteration og springer dermed den aktuelle iterationssætning over. På dette tidspunkt kan vi sige, at kodeblokken til println ikke blev udført, da k var lig med 4.

Sådan bruges break i java til loop

Pause-sætningen bruges, når vi vil springe ud af for-løkken.
Eksempel.

package javaforloops;
public class JavaForLoops {
    public static void main(String[] args)
    {    
     int [] numbers = {1, 2, 3, 4, 5};

      for(int k : numbers ) {
         if( k == 4 ) {
            break;
         }
         System.out.println( k );
         
      }
  
    }   
}

Output:

run:
1
2
3
BUILD SUCCESSFUL (total time: 0 seconds)

Fra outputtet af koden ovenfor mangler outputværdierne 4 og 5, men vi har initialiseret dem i vores array. Dette skyldes, at sløjfen afsluttes, når den når tilstanden, hvor k var lig med 4.

Konklusion

Opsummering:I denne øvelse har vi lært om java for loops, deres syntaks og typer. Vi er også gået videre og kigget på infinitiv-løkken, indlejret loop, break-sætning i for-løkken og fortsætte-sætning i java for-løkken. Bemærk, at variabler, der er erklæret inde i en for-løkke, er lokale variabler, og vi kan ikke få adgang til dem efter løkkens afslutning. Dette skyldes, at variabler erklæret inde i en sætningsblok, dens omfang kun er inden for blokken.


Java tag