switch case

Valintalauseen (switch) rakenne on seuraava
switch(lauseke)
{
	case arvo1:
		// suoritetaan jos lausekkeen arvo on arvo1
		break;
	case arvo2:
		// suoritetaan jos lausekkeen arvo on arvo2
		break;
	case arvo3:
	case arvo4:
		// suoritetaan jos lausekkeen arvo on arvo3 tai arvo4
		break;
	default:
		// suoritetaan jos mikään case ei osunut kohdalle
		break;
}

Case-kohtia voi olla yhtä monta kuin mitä lauseke saa arvoja. Useamman case:n saa suorittamaan saman koodin laittamalla ne peräkkäin (kuten esimerkin arvo3 ja arvo4) ja laittamalla koodin vain viimeiseen kohtaan. Kunkin kohdan suoritus päättyy johonkin lauseista: break (poistutaan switch-lauseesta), goto (hypätään toiseen kohtaan, esim goto case 1;), return (poistutaan metodista) tai throw (heitetään poikkeus).

Seuraava koodi laskee kuinka paljon rahaa jäätelöautomaattiin tarvitsee laittaa eri pallomäärillä.

int palloja;
Console.Write("Kuinka monta jäätelöpalloa laitetaan (1-3): ");
palloja = int.Parse(Console.ReadLine());
decimal hinta = 0m;

switch (palloja)
{
	case 1:
		hinta += 2.0m;
		break;
	case 2:
		hinta += 1.0m;
		goto case 1;
	case 3:
		hinta += 0.5m;
		goto case 2;
	default:
		throw new Exception("Kone ei voi tehdä pallottomia eikä yli kolmen pallon annoksia");
}
Console.WriteLine("Syötä koneeseen {0:0.00} euroa", hinta);