If the switch matches with some case, then the default will not be executed. (provided every case has its break statement )
but if none of the cases matches with switch variable then the default will be executed.
In this case, you have the default in the top and with no break statement. That will cause case 2 to execute also.
Here output will be xyz because case is matched.
but if a=3, then output will be abcxyz