Instruksi continue dalam PHP
Selain instruksi break yang mengakhiri
kerja loop, juga terdapat instruksi
continue yang memulai iterasi baru
dari loop. Instruksi ini terkadang dapat
berguna untuk menyederhanakan kode, meskipun hampir
selalu masalah dapat diselesaikan tanpanya. Mari kita
lihat pada contoh praktis.
Misalkan kita diberikan sebuah array dengan angka. Mari kita
ulangi dengan loop dan angka-angka yang habis dibagi
2, kita pangkatkan dua dan tampilkan
di layar, dan angka-angka yang habis dibagi 3,
kita pangkatkan tiga dan tampilkan di layar.
Berikut adalah solusi dari masalah yang dijelaskan:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
echo $res;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
echo $res;
}
}
?>
Seperti yang Anda lihat, baris echo $res
diulang dua kali. Mari kita keluarkan
dari if, seperti ini:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
}
echo $res; // menampilkan di luar kondisi
}
?>
Sekarang, skrip kita, bagaimanapun, bekerja sedikit
berbeda: hasilnya, untuk elemen biasa,
yang tidak diproses melalui if kita, akan
dilakukan penampilan variabel $res
ke layar, yang menurut kondisi masalah kita
tidak kita perlukan.
Mari kita perbaiki masalahnya, dengan menambahkan ke if kita
kondisi else lagi, yang akan terpicu
untuk elemen yang tidak habis dibagi 2 dan
3, dan panggil di sana instruksi continue,
yang akan segera melemparkan kita
ke iterasi baru loop:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
} else {
continue; // beralih ke iterasi loop baru
}
echo $res; // akan dieksekusi jika habis dibagi 2 atau 3
}
?>
Tulis sebuah loop yang hanya menampilkan
angka genap dari 1 hingga 100,
melewatkan angka ganjil dengan menggunakan continue.