I have a question associated with curly braces in switch-case block
switch( conditon ) {
case val1: {
// something
}
break;
case val2: {
// something
}
break;
default:
break;
}
or something like this:
switch( conditon ) {
case val1: {
// something
break;
}
case val2: {
// something
break;
}
default:
break;
}
A I know both codes should work the same way but I think there is some irrationalities here. As the break should cause jumping out from curly braces block so theoretically second code should do smoothen like this: 1. break course jumping out of block 2. switch continues execution case val2 or default cause outside the braces there isn't any break statement.
Which version you recommend to use and Are they really working the same way?
Try this:
{
System.out.println("A");
break;
System.out.println("B");
}
You'll see
$ javac Y.java
Y.java:35: error: break outside switch or loop
break;
^
1 error
This means: you can't use it in a block, it has no effect in combination with a block.
I would not put the break outside the block, but I've never seen coding rules demanding either way (and you could put up arguments for both sides). Maybe this is because blocks aren't used very frequently to separate visibility per switch branches.
Curly braces limit the scope of variables. And have no effect on flow control other than if, for, while, switch.. blocks, except for the cases where they're optional
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With