public class T { public static void main(String[] args) {
// TODO Auto-generated method stub
int test = 1;
for(int i=0;i<3;i++){
int j = 0;
:
while(j<5){
if(++j==3){
break ;
}
test+=1;
}
}
System.out.println(test);
}
}
这道题到底等于多少啊,在eclipse里运行是7
可断点调试的时候,有的是2,4,5 甚至还有等于16的。为什么每次都不一样.......

解决方案 »

  1.   

    蛋疼学java你们就学这屁玩意?
      

  2.   

    在test += 1;处添加调试点,调试得到结果都是7请问你是怎么调试的?
      

  3.   

    调试过程中,选中++j 右键 Watch查看一下这个值,然后就各种值都有了...
      

  4.   

    选中++j 右键 Watch查看一下这个值 然后继续走断点
      

  5.   

    选中++j再watch,会计算该表达式的值,所以j就被多加了几次
      

  6.   

    选中++j 右键 Watch查看一下这个值 然后继续走断点千万不要把++j,xxx.next()之类的本身就可变的变量等放到watch里,
    这样可能会多算几次,
    你应该直接把 j 放到watch里监视就可以了
      

  7.   

    i = 0; j = 0; test = 1;
    i = 0; j = 1; test = 2;
    i = 0; j = 2; test = 3;
    i = 0; j = 3; test = 3;i = 1; j = 0; test = 3;
    i = 1; j = 1; test = 4;
    i = 1; j = 2; test = 5;
    i = 1; j = 3; test = 5;i = 2; j = 0; test = 5;
    i = 2; j = 1; test = 6;
    i = 2; j = 2; test = 7;
    i = 2; j = 3; test = 7;
      

  8.   

                mask:
                  while(j<5){
                    if(++j==3){
                        break ;
                    }
                    test+=1;
                }
    楼主写这段代码有什么意思呢?    是想说明mask:标识吗?
      

  9.   

    选中++j 右键 Watch查看一下这个值 然后继续走断点千万不要把++j,xxx.next()之类的本身就可变的变量等放到watch里,
    这样可能会多算几次,
    你应该直接把 j 放到watch里监视就可以了谢谢,是这样的,确实不能这样干,当时纠结了好久..