Break-ohje PHP:ssä
Oletetaan, että meillä on seuraava silmukka, joka tulostaa taulukon elementit näytölle:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
echo $elem;
}
?>
Oletetaan, että tehtävänämme on määrittää,
onko taulukossa numero 3. Jos on,
tulostamme näytölle '+++' (ja
jos ei, emme tee mitään).
Ratkaistaan tehtävämme:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
if ($elem == 3) {
echo '+++';
}
}
?>
Tehtävä on ratkaistu, mutta on ongelma: sen
jälkeen, kun numero 3 on löytynyt, taulukkoa
jatketaan silti merkityksettömästi läpikäymällä
edelleen, tuhlaamalla arvokkaita suorittimen resursseja ja
hidastaen skriptimme toimintaa.
Optimaalisempaa olisi keskeyttää silmukan suoritus
välittömästi numeron löytymisen jälkeen. Tämä
on mahdollista erityisohjeella
break, joka mahdollistaa silmukan ennenaikaisen
keskeyttämisen.
Niinpä, keskeytetään silmukka heti, kun
kohtaamme numeron 3:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
if ($elem == 3) {
echo '+++';
break; // poistumme silmukasta
}
}
?>
Break-ohje voi keskeyttää mitkä tahansa silmukat:
foreach, for, while.
Annettu taulukko numeroita. Käynnistä silmukka, joka
tulostaa vuorotellen tämän taulukon
alkiot konsoliin, kunnes vastaan tulee
alkio, jonka arvo on 0. Tämän jälkeen
silmukan tulee keskeyttää toimintansa.
Annettu taulukko numeroita. Etsi alkioiden summa taulukon alusta ensimmäiseen negatiiviseen numeroon asti.
Annettu taulukko numeroita. Etsi ensimmäisen
numeron 3 sijainti tässä taulukossa
(oletamme, että tämä numero on varmasti taulukossa).
Määritä, kuinka monta kokonaislukua, alkaen
numerosta 1, on laskettava yhteen, jotta summa
ylittäisi 100.