Menampilkan daftar menu kantin, menjumlahkan harga belanjaan, atau memproses nilai ujian satu per satu: semua pekerjaan itu berulang pada setiap elemen array. C# menyediakan dua pola iterasi utama. For loop memberi akses penuh ke indeks, sedangkan foreach menyerahkan urutan penelusuran kepada runtime dan membuat kode lebih ringkas.

For Loop Ketika Indeks Dibutuhkan #

Pencetakan daftar bernomor membutuhkan posisi elemen. Kondisi loop memanfaatkan properti Length agar tetap benar meskipun jumlah elemen berubah:

csharp
string[] menuKantin = { "Nasi goreng", "Mie ayam", "Soto ayam", "Gado-gado" };

for (int i = 0; i < menuKantin.Length; i++)
{
    Console.WriteLine($"{i + 1}. {menuKantin[i]}");
}

Output yang Dihasilkan:

text
1. Nasi goreng
2. Mie ayam
3. Soto ayam
4. Gado-gado

Mari kita telaah baris demi baris:

  1. Baris 1: Array menuKantin memuat empat nama menu sebagai sumber data.
  2. Baris 3 (for (int i = 0; i < menuKantin.Length; i++)): Counter i dimulai dari 0 dan berhenti sebelum mencapai Length, sehingga rentang indeks yang sah tidak pernah terlewati.
  3. Baris 5: Interpolasi {i + 1} menghasilkan nomor urut mulai dari 1, dan {menuKantin[i]} membaca elemen pada posisi i.

Foreach untuk Pembacaan Berurutan #

Bila perhitungan tidak memerlukan posisi, foreach menghilangkan counter dan mengurangi peluang kesalahan indeks. Penjumlahan harga berikut hanya menumpuk nilai ke variabel total:

csharp
int total = 0;
int[] hargaMenu = { 15000, 12000, 13000, 8000 };
foreach (int harga in hargaMenu)
{
    total += harga;
}
Console.WriteLine($"Total semua harga: {total}");

Output yang Dihasilkan:

text
Total semua harga: 48000

Foreach menambahkan 15000, 12000, 13000, dan 8000 ke total, sehingga pencetakan menampilkan 48000. Variabel harga mewakili nilai elemen saat itu, bukan posisinya.

Menelusuri dari Belakang #

For loop juga menelusuri array secara mundur. Counter dimulai dari Length - 1, berkurang setiap putaran, dan berhenti setelah indeks 0:

csharp
for (int i = menuKantin.Length - 1; i >= 0; i--)
{
    Console.WriteLine(menuKantin[i]);
}

Output yang Dihasilkan:

text
Gado-gado
Soto ayam
Mie ayam
Nasi goreng

Urutan cetakan terbalik dibanding contoh pertama karena counter bergerak dari indeks 3 menuju 0. Pola mundur ini berguna untuk data yang disimpan berurutan waktu terbaru lebih dahulu.

Satu perbedaan perilaku perlu dicatat: for loop boleh menulis elemen di dalam body, misalnya menuKantin[i] = "Bakso", sedangkan variabel foreach bersifat hanya-baca selama iterasi. Bila elemen perlu diubah nilainya, for loop berdasarkan indeks adalah pilihan yang tepat.