Java在if结尾处继续

时间:2012-11-09 16:02:47

标签: java if-statement continue

我有一些书中的示例代码,作者总是在if结尾处使用continue。

示例:

int a = 5;
if(a == 5)
{
// some code
continue;
}

现在对我来说这没有任何意义。 可能背后有某种质量管理推理,或者我只是错过了一些更重要的观点?

4 个答案:

答案 0 :(得分:21)

也许代码片段在循环内(for/while/do...while)?否则continue置于条件语句中是否有意义。

事实上,孤立的continue(例如:一个没有嵌套在循环语句中的某个地方)会在编译时产生continue cannot be used outside of a loop错误。

答案 1 :(得分:5)

继续用于转到循环的下一次迭代。所以这样的事情会有意义。现在你可以使用任何条件(你的a==5可以突破),以及你想要的任何业务逻辑(我的是一个愚蠢的,人为的例子)。

StringBuilder sb = new StringBuilder();
for(String str : strings) {
    sb.append(str);
    if(str.length() == 0) continue; // next loop if empty

    str = str.substring(1);
    sb.append(str);
    if(str.length() == 0) continue; // next loop if empty

    str = str.substring(1);
    sb.append(str);
    if(str.length() == 0) continue; // next loop if empty

    sb.append(str);
}

答案 2 :(得分:2)

有时强制循环的早期迭代是有用的。也就是说,您可能希望继续运行循环,但在此特定迭代中停止处理其正文中的其余代码。实际上,这是一个刚刚经过循环体的循环到循环的结尾。 continue语句执行此类操作。在while和do-while循环中,continue语句使控件直接传递给控制循环的条件表达式。在for循环中,控制首先进入for语句的迭代部分,然后进入条件表达式。对于所有三个循环,任何 中间代码被绕过。这是一个示例程序,它使用continue来在每行上打印两个数字: //展示继续

class Continue
{ 
public static void main(String args[]) 
    { 
    for(int i=0; i<10; i++) 
        { 
    System.out.print(i + " "); 
    if (i%2 == 0)
    continue; 
    System.out.println(""); 
        } 
    } 
}

此代码使用%运算符来检查我是否是偶数。如果是,则循环继续而不打印换行符。以下是该计划的输出:

0 1
2 3
4 5
6 7
8 9

答案 3 :(得分:0)

通常,continue用于转义深度嵌套的循环,或者仅仅是为了清晰(有争议)。

有时候,“继续”也会用作占位符,以便制作空loop body clearer

for (count = 0; foo.moreData(); count++)
  continue;

这是一个品味问题,我个人不会继续使用。