跳到主要内容

C# continue语句

提示
  1. Continue语句功能:在C#中,continue 语句用于跳过循环的当前迭代,直接进入下一次迭代。
  2. 应用场景continue 经常与 if...else 语句结合使用,在满足特定条件时跳过当前循环的剩余部分。
  3. 在各类循环中的使用continue 可用于各种循环结构,包括 forwhileforeach 循环,在嵌套循环中只影响它所在的那一层循环。

在 C# 中,我们使用 continue 语句来跳过循环的当前迭代。

当程序遇到 continue 语句时,程序控制转移到循环的末尾并执行测试条件(在 for 循环的情况下是更新语句)。

continue 的语法是:

continue;

在了解 continue 之前,确保学习了以下内容:

示例1:C# 中的 for 循环与 continue

using System;

namespace ContinueLoop {

class Program {
static void Main(string[] args){
for (int i = 1; i <= 5; ++i){

if (i == 3) {
continue;
}

Console.WriteLine(i);
}
}
}
}

输出

1
2
4
5

在上述示例中,我们使用 for 循环打印 i = 1 到 5 的数字。然而,数字 3 没有被打印。

这是因为当 i 的值是 3 时,执行了 continue 语句。

// 跳过条件
if (i == 3) {
continue;
}

这跳过了循环的当前迭代,并将程序控制转移到更新语句。因此,3 没有被打印。

注意:continue 语句通常与 if...else 语句一起使用。

示例:C# 中的 while 循环与 continue

using System;

namespace ContinueWhile {
class Program{
static void Main(string[] args) {
int i = 0;
while (i < 5) {
i++;

if (i == 3) {
continue;
}

Console.WriteLine(i);
}
}
}
}

输出

1
2
4
5

在这里,我们在 while 循环内使用了 continue 语句。与之前的程序类似,当 i 的值是 3 时,执行了 continue 语句。

因此,屏幕上没有打印 3

C# continue 语句的工作原理

continue 语句跳过 for 循环和 while 循环的当前迭代

在嵌套循环中使用 continue

我们也可以在嵌套循环中使用 continue 语句。例如:

using System;

namespace ContinueNested {
class Program {
static void Main(string[] args) {

int sum = 0;

// 外层循环
for(int i = 1; i <= 3; i++) {

// 内层循环
for(int j = 1; j <= 3; j++) {
if (j == 2) {
continue;
}

Console.WriteLine("i = " + i + " j = " + j);
}
}
}
}
}

输出

i = 1 j = 1
i = 1 j = 3
i = 2 j = 1
i = 2 j = 3
i = 3 j = 1
i = 3 j = 3

在上述示例中,我们在内层 for 循环中使用了 continue 语句。这里,当 j == 2 时执行 continue 语句。

因此,忽略了 j = 2 的值。

如果你想了解嵌套循环的工作原理,请访问 C# 嵌套循环

在 foreach 循环中使用 C# continue

我们也可以在 foreach 循环中使用 continue 语句。例如,

using System;

namespace ContinueForeach {
class Program {
static void Main(string[] args) {

int[] num = { 1, 2, 3, 4, 5 };
foreach(int number in num) {

// 跳过迭代
if(number == 3) {
continue;
}

Console.WriteLine(number);
}
}
}
}

输出

1
2
4
5

在上述示例中,我们创建了一个包含值:12345 的数组。这里,我们使用 foreach 循环打印数组的每个元素。

然而,循环没有打印值 3。这是因为当 number 等于 3 时,执行了 continue 语句。

if (number == 3) {
continue;
}

因此,这次迭代的打印语句被跳过了。