- 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;
}
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
#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;
}
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;
}
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.