JavaRush /Java blogi /Random-UZ /Java-dagi har bir tsikl uchun

Java-dagi har bir tsikl uchun

Guruhda nashr etilgan

Java'da foreach nima?

For-each - massiv yoki to'plamning barcha elementlarini qayta ishlash kerak bo'lganda foydalaniladigan for tsiklining bir turi. "Har bir uchun" ingliz tilidan "hamma uchun" deb tarjima qilingan. Aslida, bu siklda foreach iborasi ishlatilmaydi. Uning sintaksisi quyidagicha:
for (type itVar : array)
{
    Блок операторов;
}
Qayerda typetakrorlanuvchi o'zgaruvchining turi (massivdagi ma'lumotlar turi bilan bir xil!), itVaruning nomi, arraymassiv (shuningdek, boshqa ma'lumotlar strukturasi, qandaydir to'plam bo'lishi mumkin, masalan, ArrayList), ya'ni sikl bajariladigan ob'ekt. Ko'rib turganingizdek, ushbu dizaynda hisoblagich ishlatilmaydi; iteratsiya o'zgaruvchisi indeks qiymatlari emas, balki massiv yoki to'plamning elementlari bo'ylab takrorlanadi. Bunday siklni bajarishda iteratsiya o'zgaruvchisiga massiv yoki to'plamning har bir elementining qiymati ketma-ket ravishda beriladi, shundan so'ng ko'rsatilgan operatorlar bloki (yoki bayonot) bajariladi.

For-har bir tsikldan tashqari, Java-da forEach() usuli ham mavjud. Bu haqda, masalan, " Tsikllarni yozishni to'xtating!" Maqolasida o'qishingiz mumkin. Java 8 da kollektsiyalar bilan ishlashning eng yaxshi 10 ta eng yaxshi usullari

Diqqat:For-har bir sikl java.lang.Iterable interfeysini amalga oshiradigan massivlar va har qanday sinflarga qo'llanilishi mumkin. Yuqoridagi kodning ekvivalenti quyidagi for loop bo'ladi :
for (int i=0; i<array.length; i++)
{

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

Misol uchun Java

Keling, talabalarning baholari qatorini yarataylik. Keyin, har biridan foydalanib, biz barcha ballarni chop etamiz, o'rtacha ballni ko'rsatamiz va maksimal ballni topamiz.
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));
    }

}
Dastur chiqishi:
All the grades: |5|10|7|8|9|9|10|12|
The highest grade is 12
The average grade is 8.75
Keling, barcha ballarni chop etish usuli qanday ko'rinishini ko'rib chiqamiz, bu oddiy for tsikli yordamida amalga oshiriladi:
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();
    }
Agar bu usulni method dan chaqirsak main, natijaga erishamiz:
All the grades: |5|10|7|8|9|9|10|12|

To'plamlar bilan har bir tsikldan foydalanishga misol

Keling, nomlar to'plamini yaratamiz va barcha nomlarni ekranda ko'rsatamiz.
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);
        }

For-har bir tsiklning cheklovlari

For-each ning ixcham shakli for-ga qaraganda ko'proq o'qilishi mumkin deb hisoblanadi va uni amalga oshirish mumkin bo'lgan joyda for-har biridan foydalanish yaxshi amaliyot hisoblanadi. Biroq, har biri uchun odatdagidan ko'ra kamroq ko'p qirrali konstruktsiya. Bu erda har biridan foydalanish umuman ishlamaydigan yoki ishlamaydigan bir necha oddiy holatlar mavjud, ammo qiyinchilik bilan.
  1. Agar siz boshidan oxirigacha pastadirdan o'tmoqchi bo'lsangiz. Ya'ni, har bir kod uchun to'g'ridan-to'g'ri analog mavjud emas:

    for (int i = array.length - 1; i >= 0; i--)
    {
          System.out.println(array[i]);
    }
  2. Agar massivga o'zgartirish kiritmoqchi bo'lsangiz, har biri uchun mos emas. Masalan, massivni elementlarini almashtirmasdan tartiblash mumkin bo'lmaydi. Yoki quyidagi kodda massiv elementi emas, faqat iteratsiya o‘zgaruvchisi o‘zgaradi:

    for (int itVar : array)
    {
        itVar = itVar++;
    }
  3. Agar siz massivdagi elementni qidirayotgan bo'lsangiz va siz izlayotgan element indeksini qaytarishingiz (yoki o'tishingiz) kerak bo'lsa, muntazam for tsiklidan foydalanganingiz ma'qul.

JavaRush talabasi tomonidan tayyorlangan har biri haqida foydali video

JavaRush kursidagi tsikllar

JavaRush-da biz Java Syntax kvestining 4-darajasida amalda tsikllardan foydalanishni boshlaymiz . Ularga bag'ishlangan bir nechta ma'ruzalar, shuningdek, ular bilan ishlash ko'nikmalarini mustahkamlash uchun turli darajadagi ko'plab vazifalar mavjud. Umuman olganda, siz ulardan qochib qutula olmaysiz, looplar dasturlashning eng muhim tuzilmalaridan biridir.

for-her va looplar haqida ko'proq ma'lumot:

  1. For va For-Each Loop: men qanday takrorlaganim, takrorlaganim, lekin takrorlamaganim haqidagi ertak - Java-dagi har bir for va har bir tsikl haqida batafsil maqola. O'qitilgan o'quvchi uchun mo'ljallangan (taxminan JavaRush darajasi 10 va undan yuqori).
  2. Bayonot paytida . Maqola eng oddiy tsiklga bag'ishlangan bo'lib while, uning yordamida JavaRush-dagi tsikllar bilan tanishishni boshlaysiz.
  3. Tsikllarni yozishni to'xtating! Java 8 da to'plamlar bilan ishlashning eng yaxshi 10 ta eng yaxshi usullari . Ushbu maqoladan JavaRush kursining yarmi yoki undan ko'prog'ini tugatgan talaba kollektsiyalar bilan ishlash haqida ko'p narsalarni bilib oladi.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION