logo

For hver sløyfe i Java

Forutsetning: Beslutningstaking i Java
For-each er en annen array-traverseringsteknikk som for loop, mens loop, do-while loop introdusert i Java5.

  • Det starter med nøkkelordet til som en vanlig for-loop.
  • I stedet for å deklarere og initialisere en løkketellervariabel, erklærer du en variabel som er av samme type som basistypen til matrisen, etterfulgt av et kolon, som deretter etterfølges av matrisenavnet.
  • I loop-kroppen kan du bruke loop-variabelen du opprettet i stedet for å bruke et indeksert matriseelement.
  • Det brukes ofte til å iterere over en matrise eller en samlingsklasse (f.eks. ArrayList)

Syntaks:

for (type var : array) { statements using var; }>

Enkelt program med for hver sløyfe:



Java

typer maskinlæring




type variabler java
/*package whatever //do not write package name here */> > import> java.io.*;> > class> Easy> > {> > >public> static> void> main(String[] args)> > >{> > >// array declaration> > >int> ar[] = {>10>,>50>,>60>,>80>,>90> };> > >for> (>int> element : ar)> > >System.out.print(element +>' '>);> >}> }>

>

>

Produksjon

10 50 60 80 90>

Syntaksen ovenfor tilsvarer:

for (int i=0; i  Java       // Java program to illustrate  // for-each loop  class For_Each  {   public static void main(String[] arg)   {   {   int[] marks = { 125, 132, 95, 116, 110 };     int highest_marks = maximum(marks);   System.out.println('The highest score is ' + highest_marks);   }   }   public static int maximum(int[] numbers)   {   int maxSoFar = numbers[0];     // for each loop   for (int num : numbers)   {   if (num>maxSoFar) { maxSoFar = antall;   } } returner maxSoFar;   } } Utgang Den høyeste poengsummen er 132. Begrensninger for beslutningstaking for hver sløyfe For-hver-løkker er ikke hensiktsmessige når du ønsker å modifisere matrisen : for (int num : merker) {// endrer bare num, ikke matriseelementet num = num*2; } 2. For-hver-løkker holder ikke styr på indeksen. Så vi kan ikke få matriseindeks ved å bruke For-Each loop for (int num : tall) { if (num == mål) { return ???; // kjenner ikke indeksen til num } } 3. For-each itererer bare fremover over matrisen i enkelttrinn // kan ikke konverteres til en for-each-løkke for (int i=numbers.length-1; i>0 ; i--) { System.out.println(numbers[i]); } 4. For-each kan ikke behandle to beslutningsutsagn samtidig // kan ikke enkelt konverteres til en for-each-løkke for (int i=0; i 5. For-each har også noen ytelsesoverhead over enkel iterasjon: Java / *package whatever //ikke skriv pakkenavn her */ import java.util.*; class GFG { public static void main (String[] args) { List list = new ArrayList(); startTime; lang slutttid for (int i = 0; i<1000000; i++) {   list.add(i);   }   // Type 1   startTime = Calendar.getInstance().getTimeInMillis();   for (int i : list) {   int a = i;   }   endTime = Calendar.getInstance().getTimeInMillis();   System.out.println('For each loop :: ' + (endTime - startTime) + ' ms');     // Type 2   startTime = Calendar.getInstance().getTimeInMillis();   for (int j = 0; j   int a = list.get(j);   }   endTime = Calendar.getInstance().getTimeInMillis();   System.out.println('Using collection.size() :: ' + (endTime - startTime) + ' ms');     // Type 3   startTime = Calendar.getInstance().getTimeInMillis();   int size = list.size();   for (int j = 0; j   int a = list.get(j);   }   endTime = Calendar.getInstance().getTimeInMillis();   System.out.println('By calculating collection.size() first :: ' + (endTime - startTime) + ' ms');     // Type 4   startTime = Calendar.getInstance().getTimeInMillis();   for(int j = list.size()-1; j>= 0; j--) { int a = liste.get(j);   } endTime = Calendar.getInstance().getTimeInMillis();   System.out.println('Bruker [int j = list.size(); j> størrelse ; j--] :: ' + (sluttid - starttid) + ' ms');   } } // Denne koden er bidratt av Ayush Choudhary @gfg(code_ayush) Output For hver sløyfe :: 45 ms Bruke collection.size() :: 11 ms Ved å beregne collection.size() først :: 13 ms Bruke [int j = liste.størrelse(); j> størrelse; j--] :: 15 ms Relaterte artikler: For-each i C++ vs Java Iterator vs For-each i Java>