Főol MySQL index oldal

A for ciklus

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 ciklussal, tetszőleges számban futtathatunk le műveleteket.

Nézzünk egy példát.
A 3-as szorzótábla megjelenítése for ciklussal:

  1. A lefuttatás kezdeti értékét beállítjuk 0-ra.
  2. 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.
  3. 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)

 

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:
  1. A ciklust paraméter nélkül adjuk meg, mert nekünk így jó.
  2. 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:

 


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.

 



Írjuk be a szorzó számot, (MAX=100):

Írjuk be a lefuttatások számát, (MIN=1, MAX=11):

 



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ő

  1. 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.
  2. 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.
  3. 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.
  4. Második input ablak, a szorzó értékét tárolja.
  5. Harmadik input ablak, a lefuttatások értékét tárolja.
  6. Negyedik input ablak, a küldő gombot jeleníti meg. Ha ide kattintnak, elindul a php program.

  7. 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.
  8. 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
  9. Ha a feltétel teljesül, lefuthat a for ciklus.
  10. 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.