Būtina sąlyga: sprendimų priėmimas Java
For-each yra dar viena masyvo perėjimo technika, tokia kaip for loop, while loop, do-while ciklas, įdiegtas Java5.
- Tai prasideda raktiniu žodžiu dėl kaip įprasta for-kilpa.
- Užuot deklaravę ir inicijuodami ciklo skaitiklio kintamąjį, deklaruojate kintamąjį, kurio tipas yra toks pat, kaip ir pagrindinis masyvo tipas, po kurio rašomas dvitaškis, po kurio nurodomas masyvo pavadinimas.
- Ciklo turinyje galite naudoti sukurtą ciklo kintamąjį, o ne indeksuotą masyvo elementą.
- Jis dažniausiai naudojamas kartoti per masyvą arba kolekcijų klasę (pvz., ArrayList).
Sintaksė:
for (type var : array) { statements using var; }> Paprasta programa su kiekviena kilpa:
Java
Šarvanandas
/*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 +>' '>);> >}> }> |
stovint
>
>
Išvestis 10 50 60 80 90>
Aukščiau pateikta sintaksė yra lygiavertė:
maxSoFar) { maxSoFar = skaičius; } } return maxSoFar; } } Išvestis Aukščiausias balas yra 132. Sprendimų priėmimo už kiekvieną kilpą apribojimai Kiekviena kilpa netinka, kai norite modifikuoti masyvą : for (int num : marks) { // keičia tik skaičių, o ne masyvo elementą skaičius = skaičius*2; } 2. For-each ciklai neseka indekso . Taigi mes negalime gauti masyvo indekso naudodami For-Each kilpą for (int num : numbers) { if (num == target) { return ???; // nežinau skaičiaus indekso } } 3. Kiekvienam masyve pakartojama tik į priekį atskirais žingsniais // negali būti konvertuojama į for-each kilpą (int i=numers.length-1; i>0 i--) { System.out.println(skaičiai[i]); } 4. For-each negali apdoroti dviejų sprendimų priėmimo teiginių vienu metu // negali būti lengvai konvertuojamas į for-each kilpą (int i=0; i 5. For-each taip pat turi tam tikrą našumą, palyginti su paprasta iteracija: Java / *package whatever //čia nerašykite paketo pavadinimo */ importuokite java.util.* pradžios laikas; ilgas pabaigos laikas (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 = list.get(j); } endTime = Calendar.getInstance().getTimeInMillis(); System.out.println('Naudojant [int j = list.size(); j> dydis ; j--] :: ' + (endTime - startTime) + ' ms'); } } // Šį kodą pateikė Ayush Choudhary @gfg(code_ayush) Kiekvienos kilpos išvestis :: 45 ms Naudojant collection.size() :: 11 ms Pirmiausia apskaičiuojant collection.size() :: 13 ms Naudojant [int j = list.size(); j> dydis ; j--] :: 15 ms Susiję straipsniai: „C++“ ir „Java Iterator“ ir už kiekvieną „Java“>>