JavaRush /Java Blog /Random-ID /untuk setiap loop di Java

untuk setiap loop di Java

Dipublikasikan di grup Random-ID

Apa itu foreach di Jawa?

For-each adalah jenis perulangan for yang digunakan saat Anda perlu memproses semua elemen array atau koleksi. “Untuk setiap” diterjemahkan dari bahasa Inggris sebagai “untuk semua orang”. Sebenarnya, frase foreach sendiri tidak digunakan dalam loop ini. Sintaksnya adalah sebagai berikut:
for (type itVar : array)
{
    Блок операторов;
}
Di mana typetipe variabel iteratifnya (sama dengan tipe data di array!), itVarnamanya, arrayarraynya (mungkin juga ada struktur data lain, semacam kumpulan, misalnya ArrayList), yaitu, objek tempat perulangan dieksekusi. Seperti yang Anda lihat, penghitung tidak digunakan dalam desain ini; variabel iterasi melakukan iterasi pada elemen array atau koleksi, dan bukan nilai indeks. Saat menjalankan loop seperti itu, variabel iterasi secara berurutan diberi nilai untuk setiap elemen array atau koleksi, setelah itu blok pernyataan (atau pernyataan) tertentu dieksekusi.

Selain perulangan for-each, Java juga memiliki metode forEach(). Anda dapat membacanya, misalnya di artikel “ Hentikan siklus menulis!” 10 Metode Terbaik untuk Bekerja dengan Koleksi di Java 8

Perhatian:Perulangan for-each dapat diterapkan ke array dan kelas apa pun yang mengimplementasikan antarmuka java.lang.Iterable. Setara dengan kode di atas adalah for loop berikut :
for (int i=0; i<array.length; i++)
{

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

Contoh Java foreach

Mari kita buat serangkaian nilai siswa. Kemudian, dengan menggunakan for-each, kami mencetak semua skor, menampilkan skor rata-rata, dan mencari skor maksimum.
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));
    }

}
Keluaran program:
All the grades: |5|10|7|8|9|9|10|12|
The highest grade is 12
The average grade is 8.75
Sekarang mari kita lihat seperti apa metode untuk mencetak semua skor, yang dilakukan menggunakan perulangan for biasa:
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();
    }
Jika kita memanggil metode ini dari metode tersebut main, kita akan mendapatkan hasilnya:
All the grades: |5|10|7|8|9|9|10|12|

Contoh penggunaan loop for-each dengan koleksi

Mari buat kumpulan nama dan tampilkan semua nama di layar.
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);
        }

Keterbatasan perulangan untuk setiap perulangan

Bentuk kompak dari for-each dianggap lebih mudah dibaca daripada for, dan merupakan praktik yang baik untuk menggunakan for-each jika hal itu dapat dilakukan. Namun, for-each adalah konstruksi yang kurang serbaguna dibandingkan for biasa. Berikut adalah beberapa kasus sederhana di mana penggunaan for-each tidak akan berhasil sama sekali atau akan berhasil, namun dengan kesulitan.
  1. Jika Anda ingin melewati satu putaran dari akhir ke awal. Artinya, tidak ada analog langsung untuk setiap kode berikut:

    for (int i = array.length - 1; i >= 0; i--)
    {
          System.out.println(array[i]);
    }
  2. For-each tidak cocok jika Anda ingin membuat perubahan pada array. Misalnya, tidak mungkin mengurutkan array tanpa menukar elemen-elemennya. Atau, pada kode berikut, yang akan diubah bukan elemen arraynya, melainkan hanya variabel iterasinya saja:

    for (int itVar : array)
    {
        itVar = itVar++;
    }
  3. Jika Anda mencari elemen dalam array dan perlu mengembalikan (atau meneruskan) indeks elemen yang Anda cari, lebih baik menggunakan perulangan for biasa.

Video bermanfaat tentang masing-masing yang disiapkan oleh siswa JavaRush

Perulangan dalam kursus JavaRush

Di JavaRush, kami mulai menggunakan loop dalam praktiknya di level 4 dari pencarian Sintaks Java . Ada beberapa ceramah yang dikhususkan untuk mereka, serta banyak tugas dari berbagai tingkatan untuk memperkuat keterampilan bekerja dengan mereka. Secara umum, Anda tidak dapat menghindarinya; loop adalah salah satu konstruksi terpenting dalam pemrograman.

Lebih lanjut tentang for-each dan loop:

  1. For dan For-Each Loop: kisah tentang bagaimana saya mengulangi, mengulangi, tetapi tidak mengulangi - artikel mendetail yang bagus tentang for dan for-each loop di Java. Dirancang untuk pembaca terlatih (kira-kira JavaRush level 10 ke atas).
  2. Pernyataan sementara . Artikel ini dikhususkan untuk siklus paling sederhana while, yang dengannya Anda mulai mengenal siklus di JavaRush.
  3. Berhenti menulis siklus! 10 metode terbaik untuk bekerja dengan koleksi di Java 8 . Dari artikel ini, siswa JavaRush yang telah menyelesaikan setengah kursus atau lebih akan belajar banyak tentang bekerja dengan koleksi.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION