logo

Pre každú slučku v jazyku Java

Podmienka: Rozhodovanie v Jave
For-each je ďalšia technika prechádzania poľom, ako napríklad slučka for, slučka while, slučka do-while predstavená v jazyku Java5.

  • Začína kľúčovým slovom pre ako normálny for-loop.
  • Namiesto deklarovania a inicializácie premennej počítadla cyklu deklarujete premennú, ktorá je rovnakého typu ako základný typ poľa, za ktorou nasleduje dvojbodka, za ktorou nasleduje názov poľa.
  • V tele cyklu môžete namiesto indexovaného prvku poľa použiť premennú cyklu, ktorú ste vytvorili.
  • Bežne sa používa na iteráciu poľa alebo triedy Collections (napr. ArrayList)

Syntax:



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

Jednoduchý program s pre každú slučku:

Java

typy spojení v rdbms








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

podčiarknuť pomocou css
>

>

Výkon

10 50 60 80 90>

Vyššie uvedená syntax 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 Najvyššie skóre je 132 Obmedzenia rozhodovania pre každú slučku Cykly pre každú slučku nie sú vhodné, ak chcete upraviť pole : for (int num : značky) { // zmení iba num, nie prvok poľa num = num*2; } 2. Cykly For-each nesledujú index . Takže nemôžeme získať index poľa pomocou cyklu For-Each for (int num : čísla) { if (num == cieľ) { return ???; // nepoznám index num } } 3. For-each iba iteruje dopredu cez pole v jednotlivých krokoch // nedá sa konvertovať na cyklus for-each for (int i=čísla.dĺžka-1; i>0 ; i--) { System.out.println(čísla[i]); } 4. For-each nedokáže spracovať dva rozhodovacie príkazy naraz // sa nedá ľahko konvertovať na cyklus for-each for (int i=0; i 5. For-each má tiež určitú réžiu výkonu oproti jednoduchej iterácii: Java / *baliť čokoľvek //nepíšte sem názov balíka */ import java.util.*; class GFG { public static void main (String[] args) { Zoznam zoznamu = new ArrayList(); čas začiatku; dlhý čas konca pre (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 = zoznam.get(j);   } endTime = Calendar.getInstance().getTimeInMillis();   System.out.println('Pomocou [int j = list.size(); j> size ; j--] :: ' + (endTime - startTime) + ' ms');   } } // Tento kód prispel Ayush Choudhary @gfg(code_ayush) Výstup Pre každú slučku :: 45 ms Použitie collection.size() :: 11 ms Prvým výpočtom collection.size() :: 13 ms Použitie [int j = zoznam.velkost(); j> veľkosť; j--] :: 15 ms Súvisiace články: For-each v C++ vs Java Iterator vs For-each v Java>