Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

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ä:

java-silm\Postimaksu.java - esimerkki samanarvoisista ehtolauseista

	  static double postimaksu(double paino)
	  {
	    if      ( paino < 50 )   return  0.60;
	    else if ( paino < 100 )  return  0.90;
	    else if ( paino < 250 )  return  1.30;
	    else if ( paino < 500 )  return  2.10;
	    else if ( paino < 1000 ) return  3.50;
	    else if ( paino < 2000 ) return  5.50;
	    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.8 elset pois

Voiko aliohjelmasta postimaksu jättää if-lauseiden else-osat pois? Päteekö väittämä yleisesti?

Tehtävä 10.9 Lääni

Kirjoita aliohjelma
void laani(string rekisteri)
joka tulostaa missä läänissä auto on rekisteröity. (Ennen oli Suomessa monta lääniä ja rekisterinumeron 1. kirjain määräsi missä läänissä auto oli rekisteröity).
Kirjaimen yhtäsuuruutta testataan if ( c == 'a' ) ...
Merkkijonon 1. merkki saadaan c = rekisteri[0]; edellyttäen tietysti että rekisteri != "" .

Tehtävä 10.10 if- else

Mitä ovat 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".

Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys