Ha valamilyen esemény egy meghatározott rendszerességgel ismétlődik, ciklusnak nevezzük.
Ciklusok ismétlődésének számlálójára az i betűs változót alkalmazzuk, de ez nem kötelező, azaz a program készítője egy $változóval is helyettesítheti.
A for ciklus: for ( i = kezdőérték; i < ciklus_száma; i++) { Művelet; }
- Kezdőérték: Ezzel az értékkel indul a ciklus. Tetszőleges szám lehet.
- Ciklus_száma: Feltétel: A kezdő értéktől, eddig az értékig ismétlődik a ciklus. Tetszőleges szám lehet.
- i++: Kedőérték növelő. Kezdőérték egyesével addig növekszik, még el nem éri a ciklus_száma értékét. Nem kötelező egyesével megadni a számlálót, azaz növekményt. Ha egynél nagyobb értékkel akarjuk növelni, például 3-al, akkor így adjuk meg: i=i+3
- Művelet: A kapcsos zárójelek közé írjuk be a feladatot vagy feladatokat. Az ide beírt feladat annyiszor hajtódik végre, ahányszor a ciklus lefut.
A for ciklussal, tetszőleges számban futtathatunk le műveleteket.
- A lefutások számának meghatározásához 3, azaz három értéket kell megadnunk:
- A lefuttatás kezdeti értékét
- A lefuttatás utolsó értékét.
- Mekkora léptékkel fusson a program.
Nézzünk egy példát.
A 3-as szorzótábla megjelenítése for ciklussal:
- A lefuttatás kezdeti értékét beállítjuk 0-ra.
- A lefuttatás utolsó értékét beállítjuk 11-re.
- Azért 11-re, mert a 11. lefutást már nem hajtja végre a program, ugyanis ez nem kisebb 11-nél hanem egyenlő lenne 11-el. Ebből adódóan 10 szer fut le a program.
- Mekkora léptékkel fusson a program, beállítjuk 1-re.
- Az i++ jelentése, hogy minden lefutás után, adjon egyet hozzá a kezdeti értékhez. (Megadhatjuk így is, i+1)
Példa, ha nagyobb léptéket akarunk meghatározni:
- 2-es léptéket, akkor i+2
- 3-as léptéket, akkor i+3
- És így tovább.
Ciklus lefuttatása PHP alkalmazással. | Ciklus lefuttatása JavaSript alkalmazással. |
PHP:
3 * 0 = 0 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30
PHP program megírása.
<p>
<?php
for ($i=0; $i < 11; $i++)
{$eredmeny=3*$i;
print("<br> 3 * $i = ". $eredmeny);
}
?>
</p>
|
JavaScript:
JavaScript program megírása.
<p>
<script language="JavaScript" type="text/javascript" >
for (i = 0; i < 11; i++ )
{var eredmeny= 3*i;
document.write ("<br /> 3 * "+ i+" = " +eredmeny);
}
</script>
</p>
|
Végtelen for ciklus, és a break utasítás.
A végtelen ciklusokkal vigyázni kel.
Végtelen ciklusra, két lehetőség adódik:
- A ciklust paraméter nélkül adjuk meg, mert nekünk így jó.
- Programírási hibát vétünk, azaz helytelenül határozzuk meg, a lefutási feltételt.
- Példa for ($i = 2; $i >1; $i++)
Példánkban a feltétel mindig igaz lesz, azaz a programunk sosem állna le.
Egy bizonyos lefutást követően nem tiltjuk le, azaz nem lépünk ki a for ciklusból a break utasítással, akkor, le is fagyhat a számítógépünk.
Paraméter nélküli for ciklus.
5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
<p>
<?php
$i = 2;
for (;;)
{
$eredmeny = 5 * $i;
print(" <br> 5 * $i = ". $eredmeny);
$i++;
if($i > 10) break;
}
?>
</p>
|
Véletlenül elrontott for ciklus
5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
<p>
<?php
$i = 2;
for ($i = 2; $i >1;)
{
$eredmeny = 5 * $i;
print("<br> 5 * $i = ". $eredmeny);
$i++;
if($i > 10) break;
}
?>
</p>
|
Megjegyzés:
Ajánlott, de nem kötelező!
A break utasítást és a hozzá tartozó feltételt, olyan for ciklusban elhelyezni, ahol az értékek űrlapokról, vagy más programokból érkeznek.
További példa a végtelen ciklusra.
Egy bizonyos lefutást követően nem tiltjuk le, azaz nem lépünk ki a ciklusból a break utasítással, akkor, le is fagyhat a számítógépünk.
A break utasítást bármilyen ciklusban (végtelen vagy véges) alkalmazhatjuk.
Példák:
- A program készítője állította be a feltételt, végtelen ciklusra:
- Feltétel mindig igaz lesz, azaz a programunk sosem állna le.
while (true) { Művelet;}
- De a break utasítással, kiléphetünk a hibás ciklusból:
while (true) { Művelet; if($i > 10) break; }
- Véletlen hiba, azaz hibásan meghatározott feltétel okozta, végtelen ciklus:
- Feltétel mindig igaz lesz, azaz a programunk sosem állna le.
for ($i = 2; $i >1; $i++) { Művelet; }
- De a break utasítással, kiléphetünk a hibás ciklusból:
for ($i = 2; $i >1; $i++) { Művelet; if($i > 10) break; }
Fejlesszük tovább a PHP programunkat.
Az előzőekben leírt program esetében, ha többször is megakarjuk változtatni a szorzó számát vagy a lefutások számát,
minden alkalommal újra kell írni a fájlunk tartalmát, majd azt elmenteni, hogy megkapjuk a várt eredményt.
Most, készítünk egy kis űrlapot, melybe, beírhatjuk a kívánt értéket, és már láthatjuk is az eredményt.
A for ciklus lefuttatása űrlappal.
|
Programunk által visszakapott eredményt, itt láthatjuk:
|
<p><strong><u>A kapott eredmény:</u></strong></p>
<?php
if (isset($_POST['elkuldott']))
{
echo "<form method='POST' action='pelda4_314for.php'>";
if($_POST['lefutasok_szama'] > 0 AND $_POST['lefutasok_szama'] < 12 AND $_POST['szorzo'] < 101)
{
for ($i = 0; $i < $_POST['lefutasok_szama']; $i ++)
{
$szorzo = $_POST['szorzo'];
$eredmeny = $szorzo * $i;
print("<br> $szorzo * $i = ". $eredmeny);
if($i > 10) break;
}
}
else { echo "<strong>Lefuttatásnál: 0-nál nagyobb és 12-nél kisebb értéket lehet megadni!<br /> Szorzó: 100-nál
nem lehet nagyobb! </strong>";}
echo "</form>";
}
?>
<hr></hr>
<form method="POST" action="pelda4_314for.php#for">
<input type="hidden" name="elkuldott" value="true">
<b>Írja be a szorzó számot:</b> <input type="text" name="szorzo" value="1"><br /><br />
<b>Írja be a lefuttatások számát:</b> <input type="text" name="lefutasok_szama" value="5">
<br /><br />
<input type="submit" value="Szám elküldése">
</form>
Ismertető
- Az isset( ) függvény figyeli, hogy elpostázták-e, azaz érkezett-e adat az űrlapról. Az elküldött értéket a $_POST['elkuldott'] tartalmazza.
-
Ha az isset() függvény, nem kap értéket, a PHP program nem hajtódik végre.
- A weboldalra történő belépésnél, még nincs elküldött érték, azaz, nem kattintottak a submit gombra.
-
Ezért, csak azon html tartalom jelenik meg, mely független a PHP programtól ( zöld háttérszínnel jelölve)
- Itt található, az a form elem, mely a kezdő űrlapot jeleníti meg.
- Az űrlap, négy szöveges input ablakot tartalmaz, melyekből három értéke lesz elküldve, ha a negyedikre, azaz a submit gombra klikkelnek.
- Az első input ablak rejtve van, azaz nem jelenik meg a weboldalon, (űrlapon).
-
Ennek name=nevét, és value=értékét, az űrlap készítője állítja be, azaz írja be.
- A true beírással, azt közöljük a programmal, hogy az input név (name) értékét (value), igaznak kell minősíteni, ennek köszönhetően, elküldés után, az első IF feltétel teljesül, azaz igaz lesz a feltétel.
- Második input ablak, a szorzó értékét tárolja.
- Harmadik input ablak, a lefuttatások értékét tárolja.
- Negyedik input ablak, a küldő gombot jeleníti meg. Ha ide kattintnak, elindul a php program.
- A php program, megjelenít egy form területet, és megadjuk, hogy az adatokat postázzuk az action után megadott címre.
- Mivel az űrlap és a php feldolgozó program is ugyan azon fájlban található, ezért ugyan azon fájlt határozzuk meg postacímnek.
- Meghatározzuk, hogy milyen feltételek teljesülése esetén futhat le a for ciklus.
-
Feltételünk:
Szorzó szám, nem lehet nagyobb 100-nál.
Lefutások száma, nem lehet 1-nél kisebb és 11-nél nagyobb
- Ha a feltétel teljesül, lefuthat a for ciklus.
- Ha a feltétel nem teljesül, akkor az else - ág hajtódik végre, mely figyelmezteti a felhasználót, hogy milyen értéket írhat be.