CodeGym /Java Blog /Random /Para sa-bawat loop sa Java
John Squirrels
Antas
San Francisco

Para sa-bawat loop sa Java

Nai-publish sa grupo

Ano ang para sa bawat loop?

Ang for-each ay isang uri ng for loop na ginagamit mo kapag kailangan mong iproseso ang lahat ng elemento ng isang array o koleksyon. Iyon ay sinabi, ang parirala para sa bawat isa ay hindi aktwal na ginagamit sa loop na ito. Ang syntax nito ay ang mga sumusunod:

for (type itVar : array) 
{ 
    // Operations
}
Kung saan ang uri ay ang uri ng variable ng iterator (na tumutugma sa datatype ng mga elemento sa array!), itVar ang pangalan nito, at array ay isang array (pinahihintulutan din ang iba pang mga istruktura ng data, halimbawa, isang uri ng koleksyon, tulad ng ArrayList ), ibig sabihin, ang bagay kung saan ang loop ay pinaandar. Gaya ng nakikita mo, hindi gumagamit ng counter ang construct na ito: umuulit lang ang iterator variable sa mga elemento ng array o collection. Kapag ang naturang loop ay naisakatuparan, ang variable ng iterator ay sunud-sunod na itinalaga ang halaga ng bawat elemento ng array o koleksyon, pagkatapos kung saan ang tinukoy na bloke ng mga pahayag (o pahayag) ay isasagawa.

Bilang karagdagan sa para sa bawat loop, ang Java ay mayroon ding paraang forEach(). Mababasa mo ang tungkol dito sa artikulong pinamagatang "Stop writing loops!" Nangungunang 10 pinakamahusay na kagawian para sa pagtatrabaho sa mga koleksyon sa Java 8

Tandaan:maaaring ilapat ang isang para sa bawat loop sa mga array at anumang klase na nagpapatupad ng java.lang.Iterable na interface. Ang sumusunod para sa loop ay magiging katumbas ng code sa itaas:

for (int i=0; i < array.length; i++) 
{ 
    
    // Statements 
}

Halimbawa ng para sa bawat loop

Lumilikha kami ng hanay ng mga marka ng mag-aaral. Pagkatapos ay gumagamit kami ng para sa bawat loop upang i-print ang lahat ng mga pagtatantya, kalkulahin ang average na marka, at hanapin ang pinakamataas na marka.

public class ForEachTest {
    
// A method that prints all scores     
public static void printAllScores(int[] scores) {
        System.out.print("|");
        for (int num : scores) {

            System.out.print(num + "|");
        }
        System.out.println();
    }

// A method that displays the average score 
    
public static double getAverageScore(int[] numbers) {
        int totalScore = 0;

        for (int num : numbers) {
            totalScore = num + totalScore;
        }
        return ((double) totalScore / numbers.length);

    }
// A method that determines the best (maximum) score 
    public static int getBestScore(int[] numbers) {
        int maxScore = numbers[0];

        for (int num : numbers) {
            if (num > maxScore) {
                maxScore = num;
            }
        }
        return maxScore;
    }

public static void main(String[] args) {
      
// Array of scores 
int[] scores = {5, 10, 7, 8, 9, 9, 10, 12};

        
  int bestScore = getBestScore(scores);
        System.out.print("All the scores: ");
        printAllScores(scores);
        System.out.println("The highest score is " + bestScore);
        System.out.println("The average score is " + getAverageScore(scores));
    }

}
Output ng programa:

All the scores: |5|10|7|8|9|9|10|12|
The highest score is 12
The average score is 8.75
Ngayon, tingnan natin kung ano ang magiging hitsura ng paraan para sa pag-print ng lahat ng mga marka kung gumamit tayo ng ordinaryong para sa loop:

public static void printAllScores(int[] scores) {
        System.out.print("|");
        for (int i = 0; i < scores.length; i++) {

            System.out.print(scores[i] + "|");
        }
        System.out.println();
    }
Kung tatawagin natin ang pamamaraang ito mula sa pangunahing pamamaraan, makukuha natin ang resultang ito:

All the scores: |5|10|7|8|9|9|10|12|

Halimbawa ng para sa bawat loop na may mga koleksyon

Lumilikha kami ng isang koleksyon ng mga pangalan at ipinapakita ang lahat ng mga pangalan sa screen.

List<String> names = new ArrayList<>();
        names.add("Snoopy");
        names.add("Charlie");
        names.add("Linus");
        names.add("Shroeder");
        names.add("Woodstock");

        for(String name : names){
            System.out.println(name);
        }

Mga limitasyon ng para sa bawat loop

Ang compact form ng para sa bawat loop ay itinuturing na mas madaling basahin kaysa sa para sa loop, at itinuturing na pinakamahusay na kasanayan na gumamit ng para sa bawat loop hangga't maaari. Gayunpaman, ang isang para sa bawat loop ay isang hindi gaanong unibersal na konstruksyon kaysa sa isang ordinaryong para sa loop. Narito ang ilang mga simpleng kaso kung saan ang para sa bawat loop ay alinman sa hindi gagana o gagana, ngunit mahirap lang.
  1. Kung gusto mong tumakbo sa isang loop mula sa dulo hanggang sa simula. Iyon ay, walang para sa bawat loop na direktang analogue sa sumusunod na code:

    
    for (int i= array.length-1; i>0; i--) 
    {
          System.out.println(array[i]);
    }
    
  2. Para sa-bawat isa ay hindi angkop kung gusto mong gumawa ng mga pagbabago sa isang array. Halimbawa, hindi mo maaaring pag-uri-uriin ang isang array nang hindi binabago ang lokasyon ng mga elemento nito. Bilang karagdagan, sa sumusunod na code, ang variable ng iterator lamang ang magbabago, hindi ang elemento ng array:

    
    for (int itVar : array) 
    {
        itVar = itVar++; 
    }
    
  3. Kung naghahanap ka ng isang elemento sa isang array at kailangan mong ibalik (o ipasa) ang index ng elemento na iyong hinahanap, pagkatapos ay mas mahusay na gumamit ng isang ordinaryong para sa loop.

Isang kapaki-pakinabang na video tungkol sa para sa bawat loop

Mga loop sa kursong CodeGym

Sa CodeGym, nagsisimula kaming magsanay gamit ang mga loop sa Level 4 ng Java Syntax quest . Ang ilan sa mga aralin sa antas na iyon, pati na rin ang marami sa mga gawain sa iba't ibang antas, ay nakatuon sa mga loop upang mapalakas ang iyong mga kasanayan sa pagtatrabaho sa kanila. Talaga, walang paraan na maaari mong takasan ang mga ito - ang mga loop ay isa sa pinakamahalagang konstruksyon sa programming.

Higit pang impormasyon tungkol sa para sa bawat isa at iba pang mga loop

  1. Ang pahayag habang . Ang artikulo ay tungkol sa pinakasimpleng uri ng loop: ang whileloop, na ginagamit ng CodeGym upang ipakilala ang mga loop sa mga mag-aaral.
  2. Itigil ang pagsusulat ng mga loop! Nangungunang 10 pinakamahusay na kagawian para sa pagtatrabaho sa mga koleksyon sa Java 8 . Ang artikulong ito ay makakatulong sa mga mag-aaral ng CodeGym na hindi bababa sa kalahati ng kurso na matuto ng maraming kawili-wiling bagay tungkol sa pagtatrabaho sa mga koleksyon.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION