Java 带+;=/-=操作员
这是个很简单的问题,但我想不出来。为什么在下面的(Java)代码中y计算为2Java 带+;=/-=操作员,java,Java,这是个很简单的问题,但我想不出来。为什么在下面的(Java)代码中y计算为2 int x = 2; int y = 2; switch (x * 2) { case 4: y += 1; case 6: y -= 2; default: y += 1; } 它从情况4到情况6一直到默认值,因此它递增(新值:3),递减2(新值:1),然后递增(新值:2) 至少如果您使用-Xlint,编译器应该已经警告过您这个错误。永远不要立即忽略编译器警告,并始终使用-Xlint:)编译
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;
case 6: y -= 2;
default: y += 1;
}
它从情况4到情况6一直到默认值,因此它递增(新值:3),递减2(新值:1),然后递增(新值:2)
至少如果您使用
-Xlint
,编译器应该已经警告过您这个错误。永远不要立即忽略编译器警告,并始终使用-Xlint
:)编译。您没有在大小写后添加break。所以它执行所有语句。
y=y+1-2+1;二,
Switch语句应为-
int x = 2;
int y = 2;
switch (x * 2) {
case 4: y += 1;break;
case 6: y -= 2;break;
default: y += 1;
}
那么y将是3您忘记添加
中断
:
int x = 2;
int y = 2;
switch (x * 2) {
case 4:
y += 1;
break;
case 6:
y -= 2;
break;
default: y += 1;
}
在switch语句中,除非添加
中断,否则将执行第一个匹配case下面的所有case代码>语句
如果您希望y为1
,则需要执行以下操作:
int x = 2;
int y = 2;
switch (x * 2){
case 4: y += 1;
break;
case 6: y -= 2;
break;
default: y += 1;
}
这是你的作业吗?()