Contohnya seperti saat kita ingin print kata 'hello world' sebanyak 10 kali.
Tidak mungkin kalau kita harus membuat 10 baris 'printf ("hello world")'. Itu sangat melelahkan.
Untuk itu, kita perlu memakai looping.
Dengan looping kita hanya butuh sedikit baris dan tentunya tidak melelahkan.
Dalam bahasa C, looping dibagi menjadi 3 yaitu
- for
- while
- do while
1. FOR
Format FOR adalah sebagai berikut:
for ( inisialisasi ; kondisi ; increment/decrement ) {
statement1;
statement2;
.....
}
Bagian inisialisasi, kondisi, dan increment/decrement tersebut bersifat optional, artinya salah satu bisa dihilangkan (sesuai kebutuhan).
Setiap bagian dapat diisi lebih dari 1 ekspresi tapi harus dipisahkan dengan koma. Contohnya :
int i, j;
for ( i=10, j=0 ; i > j ; i--, j++ ){
printf ("*");
}
Contoh lain dari FOR untuk menampilkan angka 1 - 10 :
int i;
for ( i=1 ; i <= 10 ; i++ ) {
printf ("%d" , i ); // Output : 12345678910
}
Ada juga yang namanya infinite loop. Infinite loop merupakan proses looping yang tidak memiliki batas sehingga prosesnya terus berulang selamanya. Contohnya :
int i;
for ( ; 1 ; ) {
printf ("@"); // akan menampilkan '@' terus menerus
}
Selain itu, ada yang namanya nested loop. Nested loop artinya loop di dalam loop. Loop yang didalam akan mengulang lebih dulu daripada loop yang diluar. Contohnya :
int i,j;
for ( i=1 ; i <=3 ; i++ ){
for ( j=1 ; j <= 5 ; j++ ){
printf ("%d", j );
}
printf (" %d " , i );
}
// Output : 12345 1 12345 2 12345 3
2. WHILE
Format WHILE adalah sebagai berikut:
while ( ekspresi/kondisi ) {
statement1;
statement2;
......
}
Ekspresi dalam while merupakan ekspresi boolean. Ketika TRUE maka statement didalam akan tereksekusi, jika FALSE maka tak akan dieksekusi.
Saat ekspresi diisi angka 0 maka otomatis kondisinya FALSE.
Saat ekspresi bukan angka 0 (seperti angka 1 atau diatasnya ) maka kondisinya TRUE
Pada looping menggunakan WHILE, ekspresi/kondisi akan dicek terlebih dahulu baru menjalankan statement. Akan berbeda halnya dengan DO...WHILE.
Contoh dari looping menggunakan WHILE untuk menampilkan angka 1 sampai 5
int i = 1;
while ( i <= 5 ){
printf ("%d", i ); // Output : 12345
i++;
}
3. DO.. WHILE
Format DO.. WHILE adalah sebagai berikut:
do {
statement1;
statement2;
....
}
while ( kondisi/ekspresi );
Kondisi DO.. WHILE berbeda dengan kondisi WHILE. Kalau WHILE akan ngecek kondisi dulu baru statementnya di eksekusi, jadi kalau false tidak akan ada statement yang tereksekusi. Sementara DO.. WHILE akan mengeksekusi statement dulu baru mengecek kondisi. Jadi walaupun kondisinya false, ia tetap akan menjalankan statement paling tidak satu kali.
Contoh dari DO.. WHILE sebagai berikut :
int i = 0;
do {
printf ("%d" , i ); // Output : 012345
i++;
}
while ( i < 6 );
int j = 5;
do {
printf ("%d", j ); // Output : 5
j++;
}
while ( j < 5 );
Dalam loop, ada yang namanya BREAK. BREAK digunakan untuk keluar dari loop. Contohnya :
int i = 0;
while ( i < 100 ) {
if ( i > 4 ) {
break;
}
else {
printf ("%d", i );
i++;
}
}
Output diatas akan menghasilkan angka '01234' karena ketika i = 5 maka ia akan memasuki kondisi if ( i > 4 ) dan melakukan break sehingga otomatis langsung keluar dari loop dan tidak lagi melanjutkan pengulangan.
Selain itu, BREAK juga digunakan untuk mengakhiri operasi case dalam switch. Kalau tidak ada BREAK, operasi case akan berjalan terus dari awal case hingga akhir case. Contohnya :
int i = 5;
switch (i) {
case 5 : printf ("hello"); break;
case 6 : printf ("world"); break;
}
// Output : hello
Kalau tidak ada break, maka outputnya akan menjadi "hello world" karena setelah melakukan case 5, tidak akan keluar dari switch, melainkan tetap berjalan ke case dibawahnya yaitu case 6 sehingga case 6 juga ikutan ter-print
Dalam loop juga ada CONTINUE. CONTINUE digunakan untuk skip statement. Jadinya statement itu tidak akan dihiraukan dan akan melanjutkan ke counter berikutnya. Contohnya :
int i;
for ( i=1; i <= 10; i++) {
if ( i == 5 ) {
continue;
printf ("hello");
}
printf ("%d", i);
}
Output contoh diatas akan menampilkan angka '1234678910' karena ketika i = 5 maka ia masuk ke kondisi if ( i == 5 ) dan melakukan continue. Ia tidak peduli lagi dengan statement yang ada dibawahnya dan akan melanjutkan ke counter berikutnya.
Tidak ada komentar:
Posting Komentar