Perjantai, 24.11.2017    
Jorkki.com

Artikkelit
   » Etusivu
   » Palaute


logo
  Artikkelit » PHP-opas

1. Alkuun
2. Ehtolause
3. Lomakkeiden käsittely
4. Tiedoston sisällyttäminen
5. Silmukat
6. Taulukot
7. Tiedostojen käsittely
8. Superglobaalit muuttujat
9. Päätäntö ja FAQ




Silmukat

Silmukat ovat erittäin tehokas tapa käsitellä tietoa. Jos haluat vaikka tulostaa normaalilla tavalla luvut 1-1000, sinun pitää tulostaa erikseen jokainen luku. Silmukkaa käyttämällä tuo onnistuu muutamalla rivillä koodia. Silmukka kuvaa hyvin silmukkalauseen toimintaa, koska silmukassa ohjelmalause toistaa itseään niin kauan, kunnes jokin arvo saavutetaan.

While-silmukka

Esimerkki 8
(silmukka.php)
<?php
$i = 1;
while ( $i <= 10 )
    {
   print $i;
   print "<br>";
   $i++;
   }
?>

Tulostus:

0
1
2
3
4
5
6
7
8
9

  • Rivillä 2 tallennamme muuttujaan $i arvon 1.
  • Rivillä 3 käytämme while-silmukkaa. While ottaa argumentikseen tiedon, jonka lause testaa ja jos ne todetaan oikeiksi, toteutetaan aaltosulkeiden välissä oleva koodi. Käytämme testausoperaattorina <=-operaattoria, joka testaa onko vasemmalla puolella oleva arvo pienempi tai yhtä suuri, kuin oikealla puolella oleva. Suomeksi sanottuna koodi voisi mennä näin: "Niin kauan, kuin muuttuja $i on pienempi tai yhtä suuri kuin 10, tulostetaan muuttujan $i arvo".
  • Rivillä 5 tulostamme muuttujassa $i olevan arvon ja rivillä 6 tulostamme rivinvaihdon.
  • Silmukka toistaa itseään niin kauan, kuin argumetiksi laitettu lause on tosi, joten jossain vaiheessä pitää muuttujan arvoa muuttaa tai silmukasta tulee loputon ja ohjelma jumittuu. Rivillä 6 on koodi $i++;. Se on operaattori, joka kasvattaa muuttujaa $i yhdellä.
  • Aluksi muuttujan $i arvo on yksi. Ensimmäisen suorituskerran jälkeen arvo on kaksi, toisen kolme jne. Kun saavutetaan arvo 11, silmukkaa ei enää suoriteta. Voi kuulostaa monimutkaiselta, mutta tosiasiassa tämä on todella yksinkertainen asia.


For-silmukka

Esimerkki 9
(silmukka2.php)
<?php
for ( $i = 0; $i <= 10 ; $i++ )
   {
   print $i;
   print "<br>";
   }
?>


  • Yllä oleva For-silmukka tulostaa saman, minkä esimerkissä 8 tulosti while-lause. While-lauseella onnistuu kaikki, mikä onnistuu for-lauseella ja toisinpäin, mutta for on usein nätimpi ja turvallisempi tapa tehdä sama toiminto.
  • For ottaa argumentikseen alustuksen, testauksen ja kasvatuksen. Eli näin:
    for ( alustus; testaus; kasvatus )
    {
    #Koodia
    }
  • Alustamme muuttujan $i luvulla 0 samalla tavalla, kuin while-lausetta käyttämällä, mutta tuolloin teimme alustuksen ennen varsinaista lausetta. Testaus toimii samalla tavalla, kuin while-lauseessa. While-lauseessa kasvatimme muuttujaa $i while-lauseen lopussa, mutta nyt kasvatus laitetaankin for-lauseen argumentiksi.


Silmukasta poistuminen break-lauseella

Joskus halutaan testata joku asia silmukan sisällä ja jos tietty asia saavutetaan, pitää silmukka keskeyttää. Se onnistuu break-lauseella.

Esimerkki 9
(silmukka2.php)
<?php
for ( $i = 0; $i <= 10 ; $i++ )
   {
   if ( $i == 5 )
      {
      break;
      }
   else
      {
      print $i;
      print "<br>";
      }
   }
?>

Tulostus:

0
1
2
3
4

  • Jos ei ollut vielä selvää, niin silmukoiden sisällä voidaan käyttää mitä tahansa koodia. Vaikka uusia silmukoita tai ehtolauseita, joita tässä tapauksessa käytetään.
  • Ehtolauseen pitäisi olla jo selvä. Testaamme siis rivillä 4, onko muuttuja $i saanut arvon 5. Jos $i on saanut arvon 5, keskeytetään silmukka rivillä 6 käyttämällä break-lausetta. Tämän jälkeen silmukkaa ei siis enään suoriteta, vaan tulostus loppuu neljään. Silmukan jälkeen ohjelma kuitenkin jatkuu normaalisti.
  • Rivillä 8 käytämme else-lausetta tulostamaan muuttujan $i arvon, jos if-lause ei toteudu.


Seuraava luku




© JC Web Productions