我有一些书中的示例代码,作者总是在if的末尾使用continue。
示例:
int a = 5;
if(a == 5)
{
// some code
continue;
}现在对我来说,这没有任何意义。这背后可能有某种质量管理的原因,或者我只是错过了一些更大的要点?
发布于 2012-11-10 00:05:51
也许这段代码是在一个循环(for/while/do...while)中?否则,将continue放在条件语句中是没有任何意义的。
事实上,孤立的循环(例如:未嵌套在continue语句中的循环)将在编译时产生continue cannot be used outside of a loop错误。
发布于 2012-11-10 00:06:19
Continue用于转到循环的下一次迭代。所以像这样的事情是有意义的。现在,您可以使用任何条件(您的条件是要中断的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);
}发布于 2012-11-10 00:12:44
有时强制循环的早期迭代是很有用的。也就是说,您可能希望继续运行循环,但在此特定迭代中停止处理其主体中的其余代码。实际上,这是一个goto,刚过循环体,到达循环体的末端。continue语句执行这样的操作。在while和do-while循环中,continue语句使控制直接转移到控制循环的条件表达式。在for循环中,控制首先转到for语句的迭代部分,然后转到条件表达式。对于所有三个循环,任何中间代码都会被绕过。下面是一个示例程序,它使用continue在每一行上打印两个数字: // example。
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("");
}
}
}这段代码使用%运算符检查i是否为偶数。如果是,则循环继续,而不打印换行符。以下是该程序的输出:
0 1
2 3
4 5
6 7
8 9
https://stackoverflow.com/questions/13311551
复制相似问题