Java12switch新语法穿透的困惑
Topic source恭喜你发现了Eclipse的bug!他的语法分析器有问题,你把最后的default用{}括起来就行:
switch (choise) {
case 1 -> {
switch (random) {
case 1 -> System.out.println("剪刀" + "PK" + "剪刀" + "平局");
case 2 -> System.out.println("剪刀" + "PK" + "石头" + "你输啦");
default -> {
System.out.println("剪刀" + "PK" + "布" + "你赢啦");
}
}
}
- 1
纯大大哟
switch (choise) {
case 1->{
switch(random) {
case 1->System.out.println("剪刀"+"PK"+"剪刀"+"平局");
case 2->System.out.println("剪刀"+"PK"+"石头"+"你输啦");
default->System.out.println("剪刀"+"PK"+"布"+"你赢啦");
}这里
}
case 2->{
switch(random) {
case 1->System.out.println("石头"+"PK"+"剪刀"+"你赢啦");
case 2->System.out.println("石头"+"PK"+"石头"+"平局");
default->System.out.println("石头"+"PK"+"布"+"你输啦");
}这里
}
default->{
switch(random) {
case 1->System.out.println("布"+"PK"+"剪刀"+"你输啦");
case 2->System.out.println("布"+"PK"+"石头"+"你赢啦");
default->System.out.println("布"+"PK"+"布"+"平局");
}
}
}
这是我写的Switch的部分,在我标注 这里 的地方,如果不写上break;或者;,就会出现所谓的switch穿透,我搞不懂原因,想请教一下。