测试continue,本意是想跳过输出5,看不出来哪里错了,就是只能显示0,1,2,3,4
请大虾帮帮忙!
public class TestWhile {
public static void main(String args[]) {
int i = 0;
int step = 5;
while (i<10) {
if(i == step) {continue;}
System.out.println("i=" + i);
i++;

}


}

}

解决方案 »

  1.   

    i=5的时候 i就开始没有变化了,死循环了这样改
    public class TestWhile {
    public static void main(String args[]) {
    int i = 0;
    int step = 5;
    while (i < 10) {
    if (i == step) {
    i++;
    continue;
    }
    System.out.println("i=" + i);
    i++;
    }
    }
    }
      

  2.   

    当执行到i=5时,continue,没有执行下面的i++就跳出了此次循环,此时i还是等于5,再次执行while,会出现死循环,而后面i=6,7,8,9,都没得到执行,所以是一直在i=5处死循环,所以就是只能显示0,1,2,3,4
    如果要是修改的话,可将if(i == step) {continue;}改为if(i == step) {i++;continue;},这样就可以了
      

  3.   


    你的程序应该改为下面的样子
    public class TestWhile {
    public static void main(String args[]) {
    int i = 0;
    int step = 5;
    while (i<10) {
    if(i == step) {  i++; continue;}        //加上 i++; 是关键
    System.out.println("i=" + i);
    i++;}
    } }
      

  4.   

    package exp1;
    public class TestWhile {
    public static void main(String args[]) {
    int i = 0;
    int step = 5;
    while (i<10) {
    if(i == step) //当i=5的时候执行此步
        {
    continue;//跳到while判断出!!!!却没有执行i++
              //也就是说if条件永远执行    进入了死循环
    //因此执行到i=4后就不能再继续执行了
    }
    System.out.println("i=" + i);
    i++;
    }
    }
    }你用的编译器是eclipse吗???
    如果是的话,你可以看到编译器的红点是一直亮着的,也就意味着程序一直没有执行完毕
    也就是说明了死循环!!!
      

  5.   

    谢谢大家热心的帮忙,我现在刚开始学,用UltraEdit编辑器 呵呵这个问题已经解决了