如何在while循环中使用continue语句
本文关键字:continue 语句 循环 while | 更新日期: 2023-09-27 17:54:29
让我们看看下面的代码片段:
int i = 0;
while ( i <= 10 )
{
System.out.println(i);
if ( i == 8 )
{
continue;
}
i++;
}
我必须在代码中做什么更改来避免无限循环?
在开始处递增,而不是在末尾:
int i = -1;
while ( i <= 10 )
{
i++;
System.out.println(i);
if ( i == 8 )
{
continue;
}
// Presumably there would be some code here, or this doesn't really make much sense
}
或者,根据语言的不同,您可以在while
语句中正确执行(无论选择i++
还是++i
,都要记住运算符优先级)
int i = 0
while ( i++ <= 10 )
{
System.out.println(i);
if ( i == 8 )
{
continue;
}
// Presumably there would be some code here, or this doesn't really make much sense
}
对于这种结构,我将质疑while
循环的使用。如果你想在循环中使用计数器,for
循环通常更合适。
让我们看一下您的代码,并逐行逐行地进行检查,而不是快速解决方案:
int i = 0;
while ( i <= 10 )
{
System.out.println(i);
if ( i == 8 )
{
continue;
}
i++;
}
i
一开始是0,它小于10,因此它进入循环,输出0并递增到1。然后i
变成2,3,4,…8
当它等于8时,它不是递增,而是返回到循环的开始,再次打印8。检查i
的值(为8)并继续执行,输出8..它会一直这样,直到永远。
因此,在测试前增加数字,它将按预期工作。
把你的代码改成这样
int i = 0;
while ( i <= 10 )
{
if ( i != 8 )
{
System.out.println(i);
}
i++;
}
我喜欢Eric Petroelje的回答。我建议这样做:
if (++i >= 8) continue;
此外,现在的编译器足够好,可以警告你这可能是一个无限循环。还有一些代码分析工具也会为您检测到这一点。
虽然这不是代码,但我不建议在大多数情况下使用,它确实达到了目的:
int i = 0;
while ( i <= 10 )
{
Console.WriteLine(i.ToString());
if ( i == 8 )
{
// Do some work here, then bail on this iteration.
goto Continue;
}
Continue: // Yes, C# does support labels, using sparingly!
i++;
}