For

For termasuk salah satu perulangan / loop dalam bahasa C++. Kegunaan for sama dengan while. Bedanya ada di sintaks penulisannya yang menyatukan pemberian nilai awal variabel, kondisi, dan perubahan nilainya. Sintaks penulisan for adalah sebagai berikut.
  • For (tipe_data nama_variabel=nilai_awal;kondisi;perubahan_nilai)statement;
  • For (nama_variabel=nilai_awal;kondisi;perubahan_nilai)statement;

Kalian juga bisa menggunakan compound statement jika diperlukan. Contoh for dengan satu statement bisa kalian lihat di bawah ini.

#include <iostream.h>

int main(int argc, char *argv[]){
    for(int i=0;i<5;i++)
        std::cout<<"nilai i ="<<i<<endl;
    return 0;
}
Contoh Program :
nilai i =0
nilai i =1
nilai i =2
nilai i =3
nilai i =4

Contoh di atas mencetak nilai variabel i mulai dari saat nilainya 0 hingga nilainya 4. Saat nilainya 5, perulangan berhenti karena perulangan sudah tidak terpenuhi syaratnya (i<5).

Contoh tersebut juga mendeklarasikan variabel i di dalam perulangan. Karena itu, saat perulangan selesai, variabel i tidak bisa digunakan lagi. Ini terkait dengan lingkup variabel. Saya akan membahasnya lain kali saja. Saat ini, fokus saja ke bagaimana cara menggunakan for.

For bisa diubah menjadi while, tapi while belum tentu bisa diubah menjadi for. Kalau kalian ingin menggunakan while untuk mendapatkan hasil yang sama, kalian bisa mengubah kode program di atas jadi seperti di bawah ini.
#include <iostream.h>

int main(int argc, char *argv[]){
int i=0;
    while(i<5){
        std::cout<<"nilai i ="<<i<<endl;
        i++;
    }
    return 0;
}

Kode program di atas hasilnya sama dengan kode sebelumnya yang menggunakan for. Bedanya hanya jenis perulangan yang digunakan dan letak deklarasi variabelnya. While umumnya menggunakan deklarasi variabel di luar loop.

Nested Loop

Loop bisa diletakkan di dalam loop lainnya. Penggunaan loop di dalam loop disebut dengan nested loop yang bisa diartikan secara harfiah dengan loop bersarang. Contoh loop bersarang bisa kalian lihat di bawah ini.
#include <iostream.h>

int main(int argc, char *argv[]){
	for(int i=0;i<4;++i){
	    for(int j=5;j>5;--j){
	        std::cout<<j<<" ";
	    }
	    cout<<endl;
	}
	
	return 0;
}
Contoh Program :
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1

Loop bagian dalam digunakan untuk mencetak angka sesuai nilai awal dan batas nilai variabel j. Loop tersebut diulang dengan menggunakan loop bagian luar yang mengapitnya. Karena ada cout dan endl, perulangan bagian luar menghasilkan perpindahan baris sesuai nilai awal dan batas nilai i. Kalian bisa mencoba untuk mengubah kondisi dari loop supaya jumlah baris dan angkanya berbeda.

Contoh di atas menggunakan pre increment (++variabel) dan pre decrement (--variabel). Jika kalian menggunakan post increment (variabel++) dan post decrement (variabel--), kalian tetap bisa mendapatkan hasil yang sama. Perbedaan dari operator-operator tersebut hanya terlihat jika kalian menggunakannya bersama assignment operator dan operator-operator lainnya.

Pola Segitiga

#include <iostream.h>

int main(int argc, char *argv[]){
	for(int i=0;i<5;++i){
	    for(int j=5;j>i;--j){
	        std::cout<<j<<" ";
	    }
	    cout<<endl;
	}
	
	return 0;
}
Contoh Program :
5 4 3 2 1
5 4 3 2
5 4 3
5 4
5

Loop terluar akan mengulang loop yang ada di dalamnya. Loop bagian dalam pada contoh di atas menggunakan variabel i sebagai batas nilai variabel j. Karena nilai variabel i selalu berkurang setiap loop terluar diulang, maka polanya terlihat seperti segitiga.

Selain pola seperti yang kalian lihat di atas, kalian bisa membentuk pola lain dengan menggunakan nested loop. Kalian juga bisa menggunakan while untuk mendapatkan hasil yang sama jika mau mencoba.