Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

10.10 for - silmukka, yleinen muoto

Yleensä ohjelmointikielissä for- silmukka on varattu juuri siihen tarkoitukseen, kuin ensimmäinen esimerkkimmekin; tasan tietyn kierrosmäärän tekemiseen.

Java- kielen for- silmukka on kuitenkin yleisempi:

	/*     1.             2.  5.          4.  7.           3.  6.  */
	for (alustus_lauseet; suoritus_ehto; kasvatus_lauseet) lause; 

for- silmukka vastaa melkein while- silmukkaa (ero tulee continue- lauseen käyttäytymisessä):

	alustus_lauseet;               /* 1.     */
	while ( suoritus_ehto ) {      /* 2.  5. */
	  lause;                       /* 3.  6. */
	  kasvatus_lauseet;            /* 4.  7. */
	}

Mikäli esimerkiksi alustuslauseita on useita, erotetaan ne toisistaan pilkulla:

java-silm\Valinsum.java - useita alustuslauseita for-silmukassa

	  public static int valin_summa_2(int ylaraja) {
	    int i,summa;
	    for (summa=0, i=1; i<=ylaraja; i++)
	      summa += i;
	    return summa;
	  }

Erittäin C:mäinen tapa tehdä yhteenlasku olisi:

java-silm\Valinsum.java - C:mäinen silmukka

	  public static int valin_summa_3(int i) {
	    int s;
	    for (s=0; i >= 0; s += i--);
	    return s;
	  }

Tämä viimeinen esimerkki on juuri niitä C- hakkereiden suosikkeja, joita ehkä kannattaa osin vältellä.

Tehtävä 10.13 1+2+..+i

Miksi valin_summa_3 laskee yhteen luvut 1..i?

Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys