-  Η εντολή 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);
		}
}