Cvičenie č.9 – Vetvenie a cykly

Téma: Vetvenie a cykly v PHP

Úloha: Vytvorte webovú stránku s názvom cyklus.php po spustení, ktorej sa zobrazí stĺpec čísel od 1 do 12; potom skript na tejto stránke upravte tak, aby po spustení zobrazil namiesto čísel názvy mesiacov v slovenskej transkripcií.

Podmienky: Vytvorený dokument umiestnite na svoj blog v položke PHP ako „Zadanie č.9 Vetvenie a cykly“ s plným znením úlohy a odkazom na súbor cyklus.php

Teória :

Cyklus …. WHILE
Slúži k vytvoreniu slučky. Ta opakovane vykonáva nejakú časť kódu, pokiaľ bude splnená zadaná počiatočná podmienka. Ide o cyklus s podmienkou na začiatku. Najskôr je teda vyhodnotená podmienka a potom sa vykonajú jednotlivé cykly. Pokiaľ má podmienka hodnotu true, vykoná sa kód v tele slučky, pokiaľ false, slučka skončí a vykoná sa prvý príkaz za slučkou. Pokiaľ chcete vykonávať jen jeden príkaz, nemusíte písať zložené zátvorky. Opustiť slučku môžete v ktoromkoľvek mieste pomocou príkazu break. Pokiaľ je viac vnorených slučiek, tak sa ukončí práve aktuálna slučka. Pokiaľ chceme napríklad vyskočiť o 2 slučky vyššie použijeme: break 2. Zvyšok tela slučky sa môže preskočiť príkazom continue, vykonávanie potom pokračuje ďalším prechodom slučkou a vyhodnotením podmienky. Opäť môžeme použiť príkaz napr. continue 2, tým preskočíme telá dvoch vnorených slučiek.

while (podmienka)
 {
 text kódu
 }

Cyklus …. DO / WHILE
Tento príkaz sa podobá príkazu while. Jediný (dosť podstatný) rozdiel je v tom, že podmienka sa vyhodnotí až po vykonaný kódu. Ide teda o cyklus s podmienkou na konci. Je teda posunutý o jeden cyklus. V tomto prípade sa však telo slučky vykoná vždy. V prípade príkazu while tomu tak nemusí byť (pokiaľ sa hneď prvá hodnota nerovná požadovanej). Opäť je možné používať príkazy break a continue s rovnakým efektom ako pri while.

do
 {
 príkazy
 }
 while (podmienka);

Cyklus …. FOR
Ide o zložitejšiu konštrukciu než obyčajná slučka while. Výhodne sa využíva pri zložitejších cykloch. Pracuje sa s tromi výrazmi. Prvý sa vyhodnocuje iba raz (pri vstupe do slučky). Týmto výrazom udáme počiatočnú hodnotu pre opakovanie. Druhým výrazom je podmienka, ktorá sa vyhodnocuje pred každým vstupom do tela slučky. Tretí výraz ukazuje o koľko sa bude premenná zvyšovať pri vykonávaní slučky. Klasicky sa necháva napríklad i++, čo znamená, že sa vždy zväčší o jednotku. Opäť je možnosť využívať príkazy break a continue. Rozdiel je iba v tom, že príkaz continue pred novým vstupom do slučky zaistí vykonanie tretieho výrazu ($i++).

for ($i=1; $i<$p ; $i++)
 {
 príkazy
 }

Najjednoduchšou formou je: for (;;). Potom ide o nekonečný cyklus. Alebo naopak môže byť použitých aj viac výrazov. Tie sa potom oddeľujú čiarkami

Cykly a polia
Cykly sa môžu s výhodou použiť na výpis všetkých (časti) hodnôt poľa.

<?php
 $pole[0] = "slovo1 ";
 $pole[1] = "slovo2 ";
 $pole[2] = "slovo3 ";
 $pole[3] = "slovo4 ";
 ?>

Na výpis predchádzajúceho poľa môžeme s výhodou použiť jednoduchý zápis:

Príklad: Cyklus for

<?php
 for ($i=0; $i<count($pole); $i++)
 echo $pole[$i];
 ?>

Avšak oveľa efektívnejší spôsob je tento:

Príklad: Cyklus while

<?php
 while (list($key,$value) = each($pole))
 echo $value;
 echo "<br />alebo<br />";
 reset($pole);
 while (list($key,$value) = each($pole))
 echo "pole[$key] = $value <br />";
?>

Príklad: Cyklus foreach

$arr1 = array(5 => 43, 32, 56, "b" => 12);
 foreach($arr1 as $kluc => $hodnota) echo "\$arr1[".$kluc."] = ".$hodnota."<br />";

Postup pri práci : Použitím príkazov na cyklus DO/WHILE alebo FOR vytvorte najprv skript na výpis čísel od 1 do 12, pričom každé číslo bude zapísané do samostatného riadku. Potom pomocou upraveného textového poľa s predchádzajúcich cvičení zmeňte skript s cyklom tak, aby vypisoval namiesto čísel názvy mesiacov v roku.