Continue dan break pada PHP
Terkadang kondisi pada sintaks perulangan tidak mencukupi untuk mengontrol perulangan. Programmer yang agak mahir terkadang menggunakan perintah continue
dan break
untuk mengontrol perulangan.
Perintah continue melanjutkan perulangan ke tahap berikutnya (bila ada). Sedangkan break langsung mengakhiri perulangan, keluar dari perulangan dan melanjutkan ke program setelah perulangan.
continue pada PHP
Di bawah ini adalah contoh program yang menggunakan continue. Pertama program mengambil kalimat dari input pengguna, kemudian menghitung dan menampilkan jumlah huruf vokal pada kalimat tersebut.
<?php //Kalimat default atau kalimat dari $_GET $kalimat = (isset($_GET['kalimat'])) ? $_GET['kalimat'] : "the quick brown fox jumps over the lazy dog"; //Tampilkan kalimat echo "Kalimat: $kalimat<hr />"; $vokal = ['a','i','u','e','o']; //Daftar huruf vokal $jumlah = []; //Array kosong untuk menampung jumlah huruf vokal foreach ($vokal as $val) $jumlah[$val] = 0; //Jumlah tiap huruf vokal dinolkan dulu //Menghitung jumlah huruf. Huruf vokal saja. for ($i=0; $i<strlen($kalimat); $i++) { //Perulangan untuk setiap huruf di dalam kalimat $huruf = $kalimat[$i]; //Huruf adalah karakter ke $i di dalam kalimat. if (!in_array($huruf,$vokal)) continue; $jumlah[$huruf]++; //Jumlah huruf vokal ditambah satu. } //Perulangan untuk menampilkan jumlah huruf foreach ($jumlah as $key=>$val) echo "Jumlah huruf '$key': $val<br />";
Output:
Kalimat: the quick brown fox jumps over the lazy dog Jumlah huruf 'a': 1 Jumlah huruf 'i': 1 Jumlah huruf 'u': 2 Jumlah huruf 'e': 3 Jumlah huruf 'o': 4
break pada PHP
break digunakan untuk keluar dari suatu perulangan. Berikut adalah contoh program yang mencari 30 bilangan prima pertama. Selain mendemonstrasikan penggunaan break, digunakan juga continue 2;
untuk melakukan continue pada dua tingkat perulangan.
<?php echo "<h1>30 bilangan prima pertama</h1>"; $primas = []; //Buat penampungan bilangan prima foreach (range(1,1000) as $angka) { for ($i=$angka-1; $i>1; $i--) { //Jika ada faktor, lanjut ke angka berikutnya if ($angka % $i == 0) continue 2; } //$angka merupakan prima, simpan ke array prima $primas[] = $angka; //Kalau sudah dapat 20 angka prima, cukupkan dulu. if (count($primas)>=30) break; } echo "<ol><li>".implode("</li><li>", $primas)."</li></ol>";
Output:
30 bilangan prima pertama
- 1
- 2
- 3
- 5
- 7
- 11
- 13
- 17
- 19
- 23
- 29
- 31
- 37
- 41
- 43
- 47
- 53
- 59
- 61
- 67
- 71
- 73
- 79
- 83
- 89
- 97
- 101
- 103
- 107
- 109