\(\renewcommand{\vec}[1]{\mathbf{#1}} \DeclareMathOperator*{\sijoitus}{\Big/} \newcommand{\eval}[2]{\sijoitus_{\kern-0.7em#1}^{\kern0.7em#2}\!} \)

Sisäkkäiset toistolauseet

Toistolauseita voi kirjoittaa sisäkkäin, mikä on joskus erittäin tehokas keino eri tarkoituksiin. Koodin ymmärtäminen on vain hankalaa, joten koodin kommentointiin täytyy kiinnittää erityistä huomiota.

Ajatellaan, että meidän pitäisi tehdä sellainen ohjelma, joka tulostaa ensimmäiselle riville numeron 1, toiselle numerot 1 2, kolmannelle numerot 1 2 3 jne. aina 50. riviin saakka. Tällaisessa tehtävässä sisäkkäiset toistolauseet ovat käteviä. Tehtävän ratkaisu on alla. Lyhyellä koodilla saadaan paljon aikaan. Koodin tuloksen näet täällä.

<script type="text/javascript"> var teksti = ""; var max = 50; for(i = 0; i < max; i++) { for(j = 0; j <= i; j++) { teksti += (j+1)+" "; } teksti += "<br />"; } document.write(teksti); </script>

Koodissa yllä sisempi for-lause kirjoittaa aina yhden rivin. Tätä yhden rivin kirjoittavaa lohkoa toistetaan sitten 50 kertaa (ensimmäinen for-lause).