Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带+;=/-=操作员_Java - Fatal编程技术网

Java 带+;=/-=操作员

Java 带+;=/-=操作员,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:)编译

这是个很简单的问题,但我想不出来。为什么在下面的(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
:)

编译。您没有在大小写后添加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; 
} 
这是你的作业吗?()