为什么要使用"继续;"声明当我可以修改if(条件)

时间:2014-09-19 05:09:37

标签: java algorithm continue

我对继续的重要性和存在做了一些研究; Java中的声明。 当我们可以修改if(条件)来完成我们想要实现的目标时,我无法理解为什么它存在。

    int i = 0;
    while (i < 100) {
        i++;
        if (i % 2 == 0) {
            continue;
        }
        System.out.println("with continue: odd number " + i++);
    }
    System.out.println("--------");
    i = 0;
    while (i < 100) {
        i++;
        if (i % 2 != 0)
        System.out.println("without continue: odd number " + i++);
    }

3 个答案:

答案 0 :(得分:3)

当你的循环内容比你的例子复杂得多时,

continue会更有用。也就是说,你可以随时管理它。

例如,此代码:

while (something) 
{
   if (cond1)
      continue;
   if (cond2)
      continue;
   ....
   if (cond3)
      continue;
   ....
}

可以替换为此代码:

while (something)
{
    if (!cond1) {
        if (!cond2) {
           ....
           if (!cond3) {
               ....
           }
       }            
    }
}

使用continue可以使代码在某些情况下更具可读性。

答案 1 :(得分:3)

同样continue可与label statement一起使用。

  

标签提供带有标识符的语句,供您参考   它在你的程序的其他地方。

class A
{

    public static void main(String[] args) {

        int arr[][] = new int[][]{{1,2},{2,3}, {3,4}, {4,5}};

        Outer:
        for(int i=0; i < arr.length; i++)
        {
            for(int j=0; j < arr[i].length ; j++)
            {
                if(arr[i][j] % 2 == 0)
                    continue Outer;
                System.out.println(arr[i][j]);
            }
        }

    }
}

答案 2 :(得分:2)

你可以总是找到一个案例,你提出的改进措施不会很好,通常情况要复杂得多,或者涉及一个 {{ 1}}陈述。而且,是的,你通常也可以重构它,以便它更容易做到。

但有时,continue是解决问题的最简单方法。

在任何情况下,它存在的原因几乎可以肯定是因为像C ++一样,基于C构建的Java,至少对于基本的流控制来说是这样。