previous next Up Title Contents Index

10.5.2 Useat peräkkäiset ehdot


Vaikka rakenne
	if (ehto1) lause1;
	else
	  if (ehto2) lause2;
	  else
	    if (ehto3) lause3;
	    else lause4; 
jossain mallissa sisennetäänkin ylläkuvatulla tavalla, on ajatus useimmiten lähempänä seuraavaa sisennystä:

c-silm\postimak.c - esimerkki samanarvoisista ehtolauseista

	double postimaksu(double paino) 
	/* Palautetaan kirjemaksun suuruus. 0 tarkoittaa pakettia */
	{
	  if      ( paino < 50 )   return  2.10;
	  else if ( paino < 100 )  return  3.50;
	  else if ( paino < 250 )  return  5.50;
	  else if ( paino < 500 )  return 10.00;
	  else if ( paino < 1000 ) return 15.00;
	  else                     return  0.00;
	}
Sovimme siis, että rakenne onkin muotoa:
	if      ( ehto1 ) lause1
	else if ( ehto2 ) lause2
	else if ( ehto3 ) lause3
	else              lause4 

Tehtävä 10.98 Lääni

Kirjoita aliohjelma
void laani(char rek_1_merkki)
joka tulostaa missä läänissä auto on rekisteröity.
Kirjaimen yhtäsuuruutta testataan if ( c == 'a' ) ...

Tehtävä 10.99 if- else

Mitä on muuttujien arvot seuraavien ohjelmanpätkien jälkeen (pöytätesti!)?

if (a<5)

/*1*/ a=1; b=2; c=3;

b=3;

a=6;

c=7;


if (a<0) a=3; else

/*5*/ a=1; b=2; c=3;

if (a>2) b=3; a=6;

c=7;






/*2*/ a=1; b=2; c=3;

if (a<5) b=3; a=6; c=7;


/*6*/ a=1; b=2; c=3;

if (a<- 5) if (a<0) a=6;

else a=2; c=7;






/*3*/ a=1; b=2; c=3;

if (a<5) {b=3; a=6;}

c=7;


/*7*/ a=1; b=2; c=3;

if (a<- 5) b=3;

if (a<5) a=6;

else a=2; c=7;






/*4*/ a=1; b=2; c=3; if (a<5)

b=3; else { a=6; c=7; }


/*8*/ a=1; b=2; c=3;

if (a<0) a=3; else;

if (a>2) b=3; a=6;

c=7;


Sisennä ohjelmanpätkät "asianmukaisesti".


previous next Up Title Contents Index