Il est souvent utile d'exécuter une instruction en fonction de la valeur d'un entier ou d'un caractère ; Java offre l'instruction composée switch à cette fin. L'exemple suivant pourrait servir, avec quelques lignes supplémentaires, à compter les voyelles et les consonnes d'un texte :
switch(c) { case 'a': case 'e': case 'i': voyelles = voyelles + 1; break; case 'b': case 'c': case 'd': consonnes = consonnes + 1; break; default: autres = autres + 1; }
L'instruction d'aiguillage switch est formée à partir d'une expression exp et d'un bloc d'instructions étiquetées (par un case ou par default). L'expression doit être de l'un des types byte, short, int, long ou char. La valeur de l'expression exp est successivement comparée à la valeur de chacune des expressions constantes figurant à droite de case. Dès qu'il y a un cas d'égalité, l'instruction suivant ce case est exécutée, ainsi que toutes les instructions suivantes, jusqu'à la fin du bloc ou jusqu'à un échappement : les instructions break ou return. Si aucune égalité n'est vérifiée, ce sont les instructions qui suivent le cas default qui sont exécutées.
Dans les usages courants du switch, chaque cas (non-vide) est terminé par un échappement :
switch(c) { case ...: ... ; break ; case ...: ... ; break ; default : ... ; }