JavaRush /Java Blog /Random-ID /Untuk Loop di Jawa

Untuk Loop di Jawa

Dipublikasikan di grup Random-ID
Mereka mengatakan bahwa programmer terbaik adalah programmer yang malas. Daripada melakukan tindakan yang sama beberapa kali, dia akan menemukan algoritma yang akan melakukan pekerjaan itu untuknya. Dan dia akan melakukannya dengan baik sehingga tidak perlu mengulanginya lagi. Cara menggunakan for loop di Java - 1Untuk menghindari penulisan kode yang sama berulang kali, diciptakanlah loop. Bayangkan kita perlu menampilkan angka dari 0 hingga 99 ke konsol Kode tanpa loop:
System.out.println(0);
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
// And so on
Kode ini akan memakan 100 baris! Sangat banyak. Dan inilah tampilannya dengan loop:
for(int i = 0; i < 100; i++) {
   System.out.println(i);
}
Hanya 3 baris!

Untuk apa loop?

Perulangan for adalah struktur kontrol kode program yang memutus linearitas eksekusi algoritme dan memungkinkan Anda mengeksekusi kode tertentu berkali-kali. Misalnya, Anda perlu minum 30 tetes obat. Algoritmanya akan menjadi seperti ini:
  1. Siapkan gelas.
  2. Buka tutupnya.
  3. Dapatkan 1 tetes.
  4. Dapatkan 2 tetes.
  5. ...
  6. Dapatkan 30 tetes.
  7. Tutup obatnya.
  8. Ambil porsi yang diterima.
Algoritma ini dapat dijelaskan lebih cepat:
  1. Siapkan gelas.
  2. Buka tutup tetesan.
  3. Dapatkan 30 tetes.
  4. Tutup obatnya.
  5. Ambil porsi yang diterima.
Kita menggunakan perulangan for hampir setiap hari dalam percakapan dengan orang lain: “...20 langkah di jalan...”, “...lakukan 10 repetisi dan 5 langkah lagi dengan kecepatan 2 kali lebih lambat...”, “.. .lakukan 5 kali pembelian di berbagai kategori dan dapatkan hadiahnya… ”Bisa panjang, tapi maksudnya jelas. Di Java, perulangan for sangat penting untuk menjaga kode Anda tetap singkat dan ringkas.

Cara kerja perulangan for

Perulangan for digunakan seperti ini:
for(<начальная точка>; <condition выхода>; <операторы счетчика>) {
	// Loop body
}
Пример перебора цифр от 0 до 5 и вывод каждой в консоль:
for(int i = 0; i < 5; i++) {
   System.out.println(i);
}
Kesimpulan:

0
1
2
3
4
Jika kita menerjemahkan entri ini ke dalam bahasa manusia, kita mendapatkan yang berikut: “ Buat variabel i dengan nilai awal 0, hingga mencapai 5, tambahkan 1 ke dalamnya dan pada setiap langkah tulis nilai i ke konsol .” Perulangan for di Java didasarkan pada tiga tahapan, yang dapat diwakili oleh diagram berikut: Cara menggunakan perulangan for di Java - 2Kondisi untuk keluar dari perulangan adalah ekspresi Boolean. Jika salah, perulangan akan berakhir. Pada contoh di atas, variabel ibertambah 1. Jika nilainya kurang dari 5, perulangan dilanjutkan. Namun begitu inilainya menjadi lebih besar atau sama dengan 5, siklusnya akan berhenti. Operator penghitung adalah ekspresi yang melakukan konversi pada variabel penghitung. Pada contoh di atas, variabelnya iditambah 1. Artinya, loop akan dieksekusi tepat 5 kali. Jika operator penghitung menambahkan 2 ke variabel i, hasilnya akan berbeda:
for(int i = 0; i < 5; i = i + 2) {
   System.out.println(i);
}
Kesimpulan:

0
2
4
Anda juga dapat mengalikan variabel, membagi, menaikkan pangkat, secara umum, melakukan apa pun yang Anda inginkan. Yang penting transformasinya menghasilkan angka. Badan perulangan adalah kode apa pun yang dapat dieksekusi. Pada contoh di atas, badan perulangan mengeluarkan nilai variabel i ke konsol, namun isi badan ini dibatasi oleh tugas dan imajinasi. Meringkas keseluruhan skema, prinsip perulangan for ini adalah sebagai berikut: kode yang ada di badan perulangan akan dieksekusi sebanyak jumlah konversi yang akan dilakukan operator penghitung sebelum kondisi keluar perulangan tercapai. Jika Anda mengatur kondisi keluar loop sebagai true:
for(int i = 0; true; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Kemudian kode setelah loop akan ditandai dengan kesalahan unreachable statement, karena tidak akan pernah dieksekusi. Sebuah tantangan bagi kecerdikan: sebagai hasil dari menjalankan kode di bawah ini, apakah “ Loop ended” akan dikeluarkan ke konsol atau akankah loop berjalan tanpa henti?
for(int i = 0; i > -1; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
Jawaban: akan ada. Variabel i cepat atau lambat akan mencapai nilai maksimumnya, dan peningkatan lebih lanjut akan mengubahnya menjadi nilai negatif maksimum, sehingga kondisi keluar akan terpenuhi (i < = -1).

untukSetiap loop

Saat bekerja dengan loop, terkadang Anda harus melakukan iterasi pada array atau koleksi. Biasanya Anda dapat melakukan iterasi melalui array menggunakan for loop:
public void printAllElements(String[] stringArray) {
   for(int i = 0; i < stringArray.length; i++) {
       System.out.println(stringArray[i]);
   }
}
Dan itu benar. Namun, untuk melakukan iterasi seluruh elemen array satu per satu, mereka membuat konstruksi forEach. Tanda tangannya adalah sebagai berikut:
for(<Тип element> <Name переменной, куда будет записан очередной элемент> : <Название массива>) {
	// Loop body
}
Anda dapat mengulangi serangkaian string dan mencetak masing-masing string ke konsol dengan cara berikut:
public void printAllElements(String[] stringArray) {
   for(String s : stringArray) {
       System.out.println(s);
   }
}
Juga singkat dan padat. Yang terpenting tidak perlu memikirkan counter dan kondisi exit, semuanya sudah siap untuk kita.

Bagaimana for loop digunakan

Sekarang mari kita lihat beberapa contoh penggunaan for loop di Java untuk menyelesaikan berbagai masalah.

Siklus terbalik (dari yang lebih besar ke yang lebih kecil)

for(int i = 5; i > 0; i--) {
   System.out.println(i);
}
Kesimpulan:

5
4
3
2
1

Beberapa variabel dan menambah penghitung di badan loop

Anda dapat menggunakan beberapa variabel dalam perulangan for, misalnya variabel tersebut dapat dikonversi dalam pernyataan counter:
int a = 0;
for(int i = 5; i > 0; i--, a++) {
   System.out.print("Step: " + a + " Meaning: ");
   System.out.println(i);
}
Kesimpulan:

Шаг: 0 Значение: 5
Шаг: 1 Значение: 4
Шаг: 2 Значение: 3
Шаг: 3 Значение: 2
Шаг: 4 Значение: 1
Atau deklarasikan dua variabel dan ulangi hingga keduanya sama:
for(int i = 5, j = 11; i != j; i++, j--) {
   System.out.println("i: " + i + " j: " + j);
}
Kesimpulan:

i: 5 j: 11
i: 6 j: 10
i: 7 j: 9
Tindakan ini sepertinya tidak mempunyai nilai apa pun, namun ada gunanya mengetahui kemungkinan ini. Anda juga dapat membuat loop dalam di dalam loop for. Dalam hal ini, jumlah langkah perulangan akan dikalikan:
for(int i = 0; i < 5; i++) {
   System.out.print(i + " | ");
   for(int j = 0; j < 5; j++) {
       System.out.print(j + " ");
   }
   System.out.print('\n');
}
Kesimpulan:

0 | 0 1 2 3 4 
1 | 0 1 2 3 4 
2 | 0 1 2 3 4 
3 | 0 1 2 3 4 
4 | 0 1 2 3 4
Dalam loop counter, jdimungkinkan untuk mengakses counter dari loop luar. Hal ini membuat loop bersarang menjadi cara ideal untuk melintasi array dua dimensi, tiga dimensi, dan array lainnya:
int[][] array = { {0, 1, 2, 3, 4 },
                       {1, 2, 3, 4, 5},
                       {2, 3, 4, 5, 6},
                       {3, 4, 5, 6, 7}};

for(int i = 0; i < array.length; i++) {
   for(int j = 0; j < array[i].length; j++) {
       System.out.print(array[i][j] + " ");
   }
   System.out.print('\n');
}
Kesimpulan:

0 1 2 3 4 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 

Penyelesaian awal siklus

Jika Anda perlu menghentikan perulangan saat memproses perulangan, gunakan operator breakyang menghentikan isi perulangan saat ini. Semua iterasi berikutnya juga dilewati:
public void getFirstPosition(String[] stringArray, String element) {
   for (int i = 0; i < stringArray.length; i++) {
       if(stringArray[i].equals(element)) {
           System.out.println(i);
           break;
       }
   }
}
Metode ini akan mencetak posisi elemen pertama yang dicari dalam array:
String[] array = {"one", "two", "three", "Jeronimo"};
getFirstPosition(array, "two");
Kesimpulan:

1

Siklus tanpa akhir

Cara lain untuk membuat perulangan for tak terbatas adalah dengan membiarkan area deklarasi counter, kondisi keluar, dan pernyataan counter kosong:
for (;;) {
}
Namun perlu diingat bahwa dalam banyak kasus, loop tak terbatas adalah bukti kesalahan logis. Perulangan seperti itu harus mempunyai kondisi keluar. Cara menggunakan perulangan for di Java - 3
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION