-It supports any kind of data, and not only synchronize but also checks for equality
-When a case is matched in switch, the program exists from the switch case and does not continue checking next cases. So you don’t need to explicitly break out the switch at the end of case
-Switch statement must be exhaustive, which means that you have to cover all possible values for your variable
-There is no fallthrough in switch statements and therefore break is not required