-  Η εντολή switch μας επιτρέπει να κατευθύνουμε τη ροή του
προγράμματος προς μια συγκεκριμένη σταθερή τιμή ανάλογα με την
τιμή μιας παράστασης.
 -  Συντάσσεται ως εξής:
        switch (παράσταση) {
        case σταθερή1:
                εντολή1;
                εντολή1α;
                εντολή1β;
                //...
                break;
        case σταθερή2:
                εντολή2;
                //...
                break;
        //...
        default:
                εντολή ν;
                break;
        }
 -  Ανάλογα με το με ποια σταθερή ισούται η τιμή της παράστασης
εκτελείται η αντίστοιχη εντολή.
 -  Αν καμία από τις σταθερές δεν ταυτίζεται με την τιμή της παράστασης
τότε εκτελείται η εντολή που ακολουθεί την default (αν υπάρχει), αλλιώς
δεν εκτελείται καμία εντολή.
 -  Παράδειγμα (τυπώνει την είσοδο μετατρέποντας χαρακτήρες που παριστάνονται
με ακολουθίες διαφυγής στις αντίστοιχες ακολουθίες):
import gr.aueb.dds.BIO;
class PrintEscapes {
        public static void main(String args[]) {
                int c;
                while ((c = BIO.readChar()) != -1)
                        switch (c) {
                        case '\n':
                                BIO.print("\\n");
                                break;
                        case '\r':
                                BIO.print("\\r");
                                break;
                        case '\t':
                                BIO.print("\\t");
                                break;
                        default:
                                BIO.print((char)c);
                        }
        }
}
Με είσοδο τον εαυτό του παράγει το παρακάτω αποτέλεσμα:
import gr.aueb.dds.BIO;\r\n\r\nclass PrintEscapes {\r\n\tpublic static
void main(String args[]) {\r\n\t\tint c;\r\n\r\n\t\twhile ((c = BIO.re
adChar()) != -1)\r\n\t\t\tswitch (c) {\r\n\t\t\tcase '\n':\r\n\t\t\t\t
BIO.print("\\n");\r\n\t\t\t\tbreak;\r\n\t\t\tcase '\r':\r\n\t\t\t\tBIO
.print("\\r");\r\n\t\t\t\tbreak;\r\n\t\t\tcase '\t':\r\n\t\t\t\tBIO.pr
int("\\t");\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tBIO.print((
char)c);\r\n\t\t\t}\r\n\t}\r\n}\r\n\r\n
 -  Το break δηλώνει ότι ο έλεγχος του προγράμματος μετά την εντολή
συνεχίζει στο τέλος της switch.
Σε αντίθετη περίπτωση ο έλεγχος του προγράμματος συνεχίζει στην επόμενη
case.  
Η ιδιότητα αυτή μας επιτρέπει να δηλώσουμε πολλαπλές τιμές.
 -  Το παρακάτω παράδειγμα μετατρέπει όλα τα πεζά φωνήεντα σε a
και σύμφωνα σε z
import gr.aueb.dds.BIO;
class MapChars {
        public static void main(String args[]) {
                int c;
                while ((c = BIO.readChar()) != -1)
                        switch (c) {
                        case 'a': case 'e': case 'i': case 'o':
                        case 'u': case 'y':
                                BIO.print('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':
                                BIO.print('z');
                                break;
                        default:
                                BIO.print((char)c);
                                }
                        }
}
Με είσοδο τον εαυτό του παράγει το παρακάτω αποτέλεσμα:
azzazz zz.aaaz.zzz.BIO;
zzazz MazCzazz {
	zazzaz zzazaz zaaz zaaz(Szzazz azzz[]) {
		azz z;
		zzaza ((z = BIO.zaazCzaz()) != -1)
		zzazzz (z) {
		zaza 'a': zaza 'a': zaza 'a': zaza 'a':
		zaza 'a': zaza 'a':
			BIO.zzazz('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':
			BIO.zzazz('z');
			zzaaz;
		zazaazz:
			BIO.zzazz((zzaz)z);
		}
	}
}