C# - Continue语句
C# - continue 语句
Section titled “C# - continue 语句”continue 语句简介
Section titled “continue 语句简介”C# 中的 continue 语句提供了一种方法,可以立即停止循环的当前迭代并进入下一次迭代。与终止整个循环的 break 语句不同,continue 只会跳过当前迭代中剩余的代码。
其行为取决于循环类型:
- 在
for循环中,它会跳转到循环的增量表达式(i++)。 - 在
while或do...while循环中,它会跳转到循环的条件检查。
continue 语句的语法很简单:
continue;您可以按如下方式,将带有 continue 语句的循环流程可视化:
( 循环开始 ) | v +---------------+ | 循环条件 |----(false)---->( 循环结束 ) +---------------+ | (true) | v+---------------------------------+| 循环体代码 #1 |+---------------------------------+ | v +-----------------+ | if (条件) |----(true)----> (跳转到下一次迭代) +-----------------+ (跳过下方代码) | (false) | v+---------------------------------+| 循环体代码 #2 |+---------------------------------+ | v (跳转到下一次迭代)在 for 循环中使用 continue
Section titled “在 for 循环中使用 continue”一个常见的用例是只处理符合特定条件的项。在此示例中,我们使用 continue 来跳过偶数,只打印奇数。
// 目标:打印从 1 到 10 的所有奇数。
for (int i = 1; i <= 10; i++){ // 如果数字是偶数,则跳过本次迭代的其余部分。 if (i % 2 == 0) { continue; // 继续下一次 i 的值。 }
// 只有奇数才会执行到这一行。 Console.WriteLine($"Odd number: {i}");}
Console.WriteLine("循环完成。");Odd number: 1Odd number: 3Odd number: 5Odd number: 7Odd number: 9Loop completed.在 while 循环中使用 continue
Section titled “在 while 循环中使用 continue”在 while 或 do...while 循环中使用 continue 时,至关重要的是要确保在 continue 语句之前更新循环的控制变量,以避免无限循环。
// 目标:打印从 10 到 19 的数字,但跳过 15。int a = 10;
while (a < 20){ if (a == 15) { // 重要提示:在执行 continue *之前* 递增 'a'。 // 否则,'a' 将始终为 15,循环将永不结束。 a++; continue; }
Console.WriteLine($"Value of a: {a}"); a++;}Value of a: 10Value of a: 11Value of a: 12Value of a: 13Value of a: 14Value of a: 16Value of a: 17Value of a: 18Value of a: 19最佳实践与常见陷阱
Section titled “最佳实践与常见陷阱”- 提高可读性:
continue有时可以使代码比深度嵌套的if语句更简洁。如果跳过的条件很简单,将continue放在循环顶部可以简化逻辑。 - 无限循环陷阱:最常见的错误是创建无限循环。在
while和do-while循环中,务必确保在调用continue之前修改控制循环退出条件的变量。 foreach循环:continue与foreach循环无缝协作,使其成为在迭代期间过滤集合的绝佳工具。
实际示例:处理用户输入
Section titled “实际示例:处理用户输入”var inputs = new List<string> { "apple", "", "banana", "-1", "cherry" };var validFruits = new List<string>();
foreach (var input in inputs){ // 跳过空或无效的输入 if (string.IsNullOrEmpty(input) || input == "-1") { Console.WriteLine($"跳过无效输入:'{input}'"); continue; }
Console.WriteLine($"正在处理有效水果:{input}"); validFruits.Add(input.ToUpper());}
Console.WriteLine($"\n已处理的有效水果:{string.Join(", ", validFruits)}");Processing valid fruit: appleSkipping invalid input: ''Processing valid fruit: bananaSkipping invalid input: '-1'Processing valid fruit: cherry
Valid fruits processed: APPLE, BANANA, CHERRY