Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

10.12.1 | ei toimi switch - lauseessa!

On huomattava, että jos halutaan suorittaa jokin switch- lauseen osista kahdella eri arvolla, EI voida käyttää rakennetta:

	switch (operaatio) {  /* VÄÄRIN: */ 	
	  case 4 | 5: x *= 2; break;   /*    5 tai  4 laskee x=2*x       */ 	:-(
	  case 3: x += 2;              /*           3 laskee x=x+4       */
	  case 2: x++;                 /*           2 laskee x=x+2       */ 
	  default: x=0; break;         /* Muut nollaavat x:än            */
	}

Kääntäjä ei tästä varoita, koska kaikki on aivan kieliopin mukaista. 4 | 5 on kahden bittilausekkeen OR eli 5. Siis

	case 4 | 8:
	on sama kuin
	case 12: 


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys