2014-09-19 47 views
0

我做了一些关于继续的重要性和存在的研究; 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

continue是比较有用的,当你的循环含量比你的例子要复杂得多。也就是说,你可以在没有它的情况下管理。

例如,下面的代码:

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

可使用此代码来代替:

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

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

+0

很大的解脱!谢谢。 – 2014-09-19 05:28:37

2

您可以总是寻找到你的建议的改善不会那么有效的情况下,通常是一些复杂得多,或涉及超过一个continue声明。而且,是的,你通常也可以重构它,这样做更容易。

但有时,continue是最简单的解决方案。

在任何情况下,它存在的原因是几乎可以肯定,因为像C++,Java的建立在C,至少在基本流程控制的东西。

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]); 
      } 
     } 

    } 
}