public static void main(String[] args) {
int m = 5, n = 5;
if((m != 5) && (n++ == 5)){}
System.out.println("a." + n);
m = n = 5;
if((m != 5) & (n++ == 6)){}
System.out.println("b." + n);
// System.out.println("b." + m);
m = n = 5;
if((m == 5) || (n++ == 5)){}
System.out.println("c." + n);
// System.out.println("c." + m);
m = n = 5;
if((m == 5) | (n++ == 6)){}
System.out.println("d." + n);
// System.out.println("d." + m);
}(环境eclipse)
我在csdn上看到了这个程序
无意的运行了一下
发现一个很奇怪的问题
如果直接运行
结果是
a.5
b.6
c.5
d.6
如果是单步调试
则结果是五花八门
好像还和调试的速度有关
我在别的机器上运行,不会出现这样的现象。唯独我这一台机器
这个事情本来是去年过年前的事情
原本想可能是编译器的问题,说不定年后好了,没想到这过了年还是一样?
int m = 5, n = 5;
if((m != 5) && (n++ == 5)){}
System.out.println("a." + n);
m = n = 5;
if((m != 5) & (n++ == 6)){}
System.out.println("b." + n);
// System.out.println("b." + m);
m = n = 5;
if((m == 5) || (n++ == 5)){}
System.out.println("c." + n);
// System.out.println("c." + m);
m = n = 5;
if((m == 5) | (n++ == 6)){}
System.out.println("d." + n);
// System.out.println("d." + m);
}(环境eclipse)
我在csdn上看到了这个程序
无意的运行了一下
发现一个很奇怪的问题
如果直接运行
结果是
a.5
b.6
c.5
d.6
如果是单步调试
则结果是五花八门
好像还和调试的速度有关
我在别的机器上运行,不会出现这样的现象。唯独我这一台机器
这个事情本来是去年过年前的事情
原本想可能是编译器的问题,说不定年后好了,没想到这过了年还是一样?
解决方案 »
- 急求Java 打包 串口操作API的方法
- 如何捕捉外部jar包抛出的异常,例如JDBC抛出的异常
- 诚恳地请教一个题目!!!
- 请问java一个关于事件传递的问题?
- 高手求救啦!!一个向量问题???
- 如何保存 BufferedImage 中的图像到指定的路径下?
- 我用JAVAC编译一个目录,javac C:\src\*.java -d C:\classes,importJAVA自已如java.awt.*没问题,import 这个目录下其它类就出问题
- matlab里simulink的画流程图(元件图)见过吗?java能实现吗?
- java 窗体问题
- 请推荐一本JAVA的经典书籍,高分相赠
- Jbutton控件组显示层次的问题
- 大家帮忙看看方法该怎样定义啊
a.5
b.6
c.5
d.6
我单步调试的结果是:
a.10
b.9
c.5
d.6
或者
a.11
b.10
c.5
d.6
一般来说后两个不会变
前两个总是在变
如果运行的话没问题的
但不调试的时候
a.5
b.6
c.5
d.6
这个结果有时变为
a.11
b.10
c.5
d.6
或者
a.10
b.9
c.5
d.6
一般来说后两个比较稳定
不过比较奇怪的是
我刚刚把这些代码重新敲了一遍
好像又没问题啦莫名其妙难道真的是灵异事件不会阿出现这些问题
我同事都看见了oh mod!
a.5
b.6
b.5
c.5
c.5
d.6
d.5
正常吧