首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

switch(i++) {} 有关问题

2013-09-24 
switch(i++) {} 问题请各位给小弟解答一下:public class Test{public static void main(String[] args) {i

switch(i++) {} 问题
请各位给小弟解答一下:
public class Test{
public static void main(String[] args) {

int i = 2;
switch(i++) {
case 2 : i += 1;
case 3 : i += 1;
case 4 : i += 1;break;
default : i += 1;
}

System.out.println(i);

}
} switch
[解决办法]
i=2,(i++) = 2
[解决办法]
这里楼主应该会被i++搞迷惑了,到底 case(i++) 时 为多少?2还是3呢? 
i++ 其隐式含义是 i=i+1;它和直接指定 i=i+1;是有区别的:
i++,这个时候的i的值,并不会立即增加,要执行完这句后才增加,这个叫编译后置,
i=i+1,这个时候的i的值,是增加完后的值.

还有一个相对应的 ++i; 它是在一进入到这里,立马就增加了,它是编译前置的.

热点排行