-  Η εντολή switch μας επιτρέπει να κατευθύνουμε τη ροή του
προγράμματος προς μια συγκεκριμένη σταθερή τιμή ανάλογα με την
τιμή μιας παράστασης.
-  Συντάσσεται ως εξής:
	switch (παράσταση) {
	case σταθερή1:
		εντολή1;
		εντολή1α;
		εντολή1β;
		...
		break;
	case σταθερή2:
		εντολή2;
		...
		break;
	...
	default:
		εντολή ν;
		break;
	}
-  Ανάλογα με το με ποια σταθερή ισούται η τιμή της παράστασης
εκτελείται η αντίστοιχη εντολή.
-  Αν καμία από τις σταθερές δεν ταυτίζεται με την τιμή της παράστασης
τότε εκτελείται η εντολή που ακολουθεί την default (αν υπάρχει), αλλιώς
δεν εκτελείται καμία εντολή.
-  Παράδειγμα (τυπώνει την είσοδο μετατρέποντας χαρακτήρες που παριστάνονται
με ακολουθίες διαφυγής στις αντίστοιχες ακολουθίες):
#include <stdio.h>
 
 main()
 {
 int c;
 
 while ((c = getchar()) != EOF)
 switch (c) {
 case '\n':
 printf("\\n");
 break;
 case '\a':
 printf("\\a");
 break;
 case '\t':
 printf("\\t");
 break;
 default:
 putchar(c);
 }
 }
 
 Με είσοδο τον εαυτό του παράγει το παρακάτω αποτέλεσμα:
#include <stdio.h>\n\nmain()\n{\n\tint c;\n\n\twhile
((c = getchar()) != EOF)\n\t\tswitch (c) {\n\t\tcase
'\n':\n\t\t\tprintf("\\n");\n\t\t\tbreak;\n\t\tcase
'\a':\n\t\t\tprintf("\\a");\n\t\t\tbreak;\n\t\tcase
'\t':\n\t\t\tprintf("\\t");\n\t\t\tbreak;\n\t\tdefault:
\n\t\t\tputchar(c);\n\t\t}\n}\n
-  Το break δηλώνει ότι ο έλεγχος του προγράμματος μετά την εντολή
συνεχίζει στο τέλος της switch.
Σε αντίθετη περίπτωση ο έλεγχος του προγράμματος συνεχίζει στην επόμενη
case.  
Η ιδιότητα αυτή μας επιτρέπει να δηλώσουμε πολλαπλές τιμές.
-  Το παρακάτω παράδειγμα μετατρέπει όλα τα πεζά φωνήεντα σε a
και σύμφωνα σε z
#include <stdio.h>
 
 main()
 {
 int c;
 
 while ((c = getchar()) != EOF)
 switch (c) {
 case 'a': case 'e': case 'i': case 'o':
 case 'u': case 'y':
 putchar('a');
 break;
 case 'b': case 'c': case 'd': case 'f':
 case 'g': case 'h': case 'j': case 'k':
 case 'l': case 'm': case 'n': case 'p':
 case 'q': case 'r': case 's': case 't':
 case 'v': case 'w': case 'x': case 'z':
 putchar('z');
 break;
 default:
 putchar(c);
 }
 }
 
 Με είσοδο τον εαυτό του παράγει το παρακάτω αποτέλεσμα:
#azzzaza <zzzaa.z>
zaaz()
{
	azz z;
	zzaza ((z = zazzzaz()) != EOF)
		zzazzz (z) {
		zaza 'a': zaza 'a': zaza 'a': zaza 'a':
		zaza 'a': zaza 'a':
			zazzzaz('a');
			zzaaz;
		zaza 'z': zaza 'z': zaza 'z': zaza 'z':
		zaza 'z': zaza 'z': zaza 'z': zaza 'z':
		zaza 'z': zaza 'z': zaza 'z': zaza 'z':
		zaza 'z': zaza 'z': zaza 'z': zaza 'z':
		zaza 'z': zaza 'z': zaza 'z': zaza 'z':
			zazzzaz('z');
			zzaaz;
		zazaazz:
			zazzzaz(z);
		}
}