previous next Up Title Contents Index

10.7 while - silmukka

do- while - silmukka suoritetaan aina vähintään 1. kerran. Joskus on tarpeen silmukka, jonka runkoa ei suoriteta yhtään kertaa. Muutamme edellisen esimerkkimme käyttämään while - silmukkaa:
	while ( ehto ) lause 
Muutamme samalla algoritmia siten, että 2:lla jaolliset käsitellään erikoistapauksena. Näin pääsemme eroon "inhottavasta" kasvatus- muuttujasta.

c-silm\alkuluk2.c - alkulukutesti while-silmukalla

	int pienin_jakaja(int luku) 
	{
	  int jakaja=3;
	  if ( luku < 0 ) luku = - luku;
	  if ( luku == 2 ) return 1;
	  if ( (luku % 2) == 0 ) return 2;
	  while ( jakaja < luku /2 ) {
	    if ( (luku % jakaja) == 0 ) return jakaja;
	    jakaja += 2;
	  }
	  return 1;
	}


previous next Up Title Contents Index