JavaRush /Java Blog /Random-TK /Java-da her aýlaw üçin

Java-da her aýlaw üçin

Toparda çap edildi

Java-da foreach näme?

Her biri, bir massiwiň ýa-da kolleksiýanyň ähli elementlerini gaýtadan işlemeli bolanyňyzda ulanylýan aýlawyň bir görnüşidir. “Her kim üçin” iňlis dilinden “hemmeler üçin” terjime edilýär. Aslynda, bu aýlawda foreach sözüniň özi ulanylmaýar. Sintaksis aşakdaky ýaly:
for (type itVar : array)
{
    Блок операторов;
}
typeGaýtalanýan üýtgeýjiniň görnüşi (massiwdäki maglumatlar görnüşi bilen birmeňzeş!) Nirede, onuň itVarady, arraymassiwdir (başga bir maglumat gurluşy hem bolup biler, mysal üçin haýsydyr bir kolleksiýa bolup biler ArrayList), ýagny aýlawyň ýerine ýetirilýän obýekti. Görşüňiz ýaly, bu dizaýnda hasaplaýjy ulanylmaýar; gaýtalama üýtgeýjisi indeks bahalary däl-de, bir massiw ýa-da kolleksiýa elementleriniň üstünde gaýtalanýar. Şeýle aýlaw ýerine ýetirilende, gaýtalama üýtgeýjisi yzygiderli massiwiň ýa-da kolleksiýanyň elementleriniň bahasyny kesgitleýär, şondan soň görkezilen jümleler (ýa-da beýannama) ýerine ýetirilýär.

Java-da her aýlawdan başga-da forEach () usuly bar. Bu hakda, mysal üçin, " Sikl ýazmagy bes ediň!" Makalasynda okap bilersiňiz. Java 8-de kolleksiýalar bilen işlemegiň iň gowy 10 usuly

Üns beriň:Her aýlaw üçin massiwlere we java.lang.Iterable interfeýsini amala aşyrýan islendik synplara ulanylyp bilner. Aboveokardaky kody ekwiwalent aýlaw üçin aşakdakylar bolar :
for (int i=0; i<array.length; i++)
{

    Блок операторов;
}

Java foreach mysaly

Geliň, talyp bahalarynyň toplumyny döredeliň. Soň bolsa, hersi üçin ulanyp, ähli ballary çap edýäris, ortaça baly görkezýäris we iň ýokary bal tapýarys.
public class ForEachTest {

//method that prints all grades
public static void printAllGrades(int[] grades) {
        System.out.print("|");
        for (int num : grades) {

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

//method that displays the average score

public static double midGrade(int[] numbers) {
        int grade = 0;

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

    }
//method in which the best (maximum) score is calculated
    public static int bestGrade(int[] numbers) {
        int maxGrade = numbers[0];

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

public static void main(String[] args) {

//array of ratings
int[] grades = {5, 10, 7, 8, 9, 9, 10, 12};


  int highest_marks = bestGrade(grades);
        System.out.print("All the grades: ");
        printAllGrades(grades);
        System.out.println("The highest grade is " + highest_marks);
        System.out.println("The average grade is " + midGrade(grades));
    }

}
Programmanyň çykyşy:
All the grades: |5|10|7|8|9|9|10|12|
The highest grade is 12
The average grade is 8.75
Indi bolsa, aýlaw üçin yzygiderli ulanyp, ähli ballary çap etmegiň usulynyň nähili boljakdygyny göreliň:
public static void printAllGrades(int[] grades) {
        System.out.print("|");
        for (int i = 0; i < grades.length; i++) {

            System.out.print(grades[i] + "|");
        }
        System.out.println();
    }
Bu usuldan usul diýsek main, netijäni alarys:
All the grades: |5|10|7|8|9|9|10|12|

Kolleksiýalar bilen her aýlaw üçin ulanmagyň mysaly

Geliň, atlar ýygyndysyny döredeliň we ähli atlary ekranda görkezeliň.
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);
        }

Her aýlaw üçin çäklendirmeler

Her biriniň ykjam görnüşi, has köp okalýan hasaplanýar we ýerine ýetirilip bilinjek ýerinde ulanmak amatly hasaplanýar. Şeýle-de bolsa, her biri üçin adatydan has az köptaraply gurluş. Ine, hersi üçin ulanmak asla işlemez ýa-da işlemez, ýöne kynçylyk bilen birnäçe ýönekeý ýagdaý.
  1. Soňundan başyna bir aýlawdan geçmek isleseňiz. Eachagny, aşakdaky koda her bir analog üçin göni ýok:

    for (int i = array.length - 1; i >= 0; i--)
    {
          System.out.println(array[i]);
    }
  2. Bir massiwde üýtgeşme girizmek isleseňiz, hersi laýyk däl. Mysal üçin, elementlerini çalyşmazdan bir massiw tertiplemek mümkin bolmaz. Ora-da aşakdaky kodda massiw elementi üýtgemez, diňe gaýtalama üýtgeýjisi:

    for (int itVar : array)
    {
        itVar = itVar++;
    }
  3. Bir massiwde bir element gözleýän bolsaňyz we gözleýän elementiňiziň indeksini yzyna gaýtarmaly (ýa-da geçirmeli) bolsaňyz, yzygiderli aýlaw üçin ulanmak has gowudyr.

JavaRush okuwçysy tarapyndan taýýarlanan her biri üçin peýdaly wideo

JavaRush kursynda aýlawlar

JavaRush-da, Java Sintaksis gözleginiň 4-nji derejesinde iş ýüzünde aýlawlary ulanyp başlaýarys . Olara bagyşlanan birnäçe leksiýa, şeýle hem olar bilen işlemek endiklerini güýçlendirmek üçin dürli derejedäki köp meseleler bar. Umuman, siz olardan gaçyp bilmersiňiz; aýlawlar programmirlemegiň iň möhüm gurluşlaryndan biridir.

Her biri we aýlawlary barada has giňişleýin:

  1. Her we her aýlaw üçin: nädip gaýtaladym, gaýtaladym, ýöne gaýtalamadym erteki - Java-da her aýlaw üçin we jikme-jik makala. Öwredilen okyjy üçin niýetlenendir (takmynan JavaRush derejesi 10 we ondan ýokary).
  2. Beýannama . whileMakala , JavaRush-da sikller bilen tanşyp başlaýan iň ýönekeý sikliňize bagyşlanýar .
  3. Sikl ýazmagy bes ediň! Java 8-de kolleksiýalar bilen işlemek üçin iň oňat 10 usul . Bu makaladan, kursyň ýarysyny ýa-da ondan köpüsini gutaran JavaRush talyby kolleksiýalar bilen işlemek barada köp zat öwrener.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION