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. 1
  2. 2
  3. 3
  4. 5
  5. 7
  6. 11
  7. 13
  8. 17
  9. 19
  10. 23
  11. 29
  12. 31
  13. 37
  14. 41
  15. 43
  16. 47
  17. 53
  18. 59
  19. 61
  20. 67
  21. 71
  22. 73
  23. 79
  24. 83
  25. 89
  26. 97
  27. 101
  28. 103
  29. 107
  30. 109