logo

Pro každou smyčku v Javě

Předpoklad: Rozhodování v Javě
For-each je další technika procházení pole, jako je smyčka for, smyčka while, smyčka do-while zavedená v Java5.

  • Začíná to klíčovým slovem pro jako normální for-loop.
  • Namísto deklarace a inicializace proměnné čítače smyčky deklarujete proměnnou, která je stejného typu jako základní typ pole, za kterou následuje dvojtečka, za kterou následuje název pole.
  • V těle smyčky můžete místo indexovaného prvku pole použít proměnnou smyčky, kterou jste vytvořili.
  • Běžně se používá k iteraci přes pole nebo třídu Collections (např. ArrayList)

Syntax:



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

Jednoduchý program s pro každou smyčku:

Jáva

js dekódování base64








/*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 +>);> >}> }>

shehzad poonawala
>

>

Výstup

10 50 60 80 90>

Výše uvedená syntaxe je ekvivalentní:

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 = num;   } } return maxSoFar;   } } Výstup Nejvyšší skóre je 132 Omezení rozhodování pro každou smyčku Smyčky pro každou smyčku nejsou vhodné, když chcete upravit pole : for (int num : značky) { // změní pouze num, nikoli prvek pole num = num*2; } 2. Cykly For-each nesledují index . Nemůžeme tedy získat index pole pomocí cyklu For-Each for (int num : čísla) { if (num == cíl) { return ???; // neznám index num } } 3. For-each pouze iteruje vpřed přes pole v jednotlivých krocích // nelze převést na cyklus for-each for (int i=čísla.délka-1; i>0 ; i--) { System.out.println(čísla[i]); } 4. For-each nemůže zpracovat dva rozhodovací příkazy najednou // nelze snadno převést na cyklus for-each for (int i=0; i 5. For-each má také určitou výkonnostní režii oproti jednoduché iteraci: Java / *balíček cokoliv //nepište sem jméno balíčku */ import java.util.*; class GFG { public static void main (String[] args) { Seznam seznam = new ArrayList(); počáteční čas; dlouhý čas ukončení pro (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 = seznam.get(j);   } endTime = Calendar.getInstance().getTimeInMillis();   System.out.println('Pomocí [int j = list.size(); j> velikost ; j--] :: ' + (endTime - startTime) + ' ms');   } } // Tento kód přispěl Ayush Choudhary @gfg(code_ayush) Výstup Pro každou smyčku :: 45 ms Použití collection.size() :: 11 ms Prvním výpočtem collection.size() :: 13 ms Použití [int j = seznam.velikost(); j> velikost ; j--] :: 15 ms Související články: For-each v C++ vs Java Iterator vs For-each v Javě>