【C#零基础从入门到精通】(十二)——C# break、continue、goto:跳出循环详解
在使用循环语句时,并不是必须等待循环完成后才能退出循环,我们也可以主动退出循环,C# 为我们提供了 break、continue 和 goto 三种方式来跳出循环,下面就来分别介绍一下。
1. break
语句
功能概述
break
语句主要用于立即终止当前所在的循环结构(for
、foreach
、while
、do-while
)或者 switch
语句,程序的执行流程会跳出该结构,继续执行结构后面的代码。
语法
在循环体或者 switch
语句中直接使用 break;
即可。
在循环中的使用示例
using System;
class Program
{
static void Main()
{
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break; // 当 i 等于 5 时,终止循环
}
Console.WriteLine(i);
}
Console.WriteLine("循环结束后继续执行这里的代码");
}
}
在上述代码中,当 i
的值变为 5 时,break
语句被执行,for
循环立即终止,程序会跳转到循环后面的 Console.WriteLine("循环结束后继续执行这里的代码");
语句继续执行。
在 switch
语句中的使用示例
using System;
class Program
{
static void Main()
{
int choice = 2;
switch (choice)
{
case 1:
Console.WriteLine("选择了 1");
break;
case 2:
Console.WriteLine("选择了 2");
break; // 执行完该 case 块后,跳出 switch 语句
case 3:
Console.WriteLine("选择了 3");
break;
default:
Console.WriteLine("无效选择");
break;
}
Console.WriteLine("switch 语句结束后继续执行这里的代码");
}
}
这里,当 choice
的值为 2 时,执行 case 2
块中的代码,遇到 break
后,程序跳出 switch
语句,继续执行后面的代码。
2. continue
语句
功能概述
continue
语句用于跳过当前循环迭代中剩余的代码,直接进入下一次循环迭代。也就是说,当执行到 continue
语句时,循环体中 continue
语句后面的代码将不会被执行,程序会根据循环的控制条件判断是否进行下一次迭代。
语法
在循环体中使用 continue;
。
使用示例
using System;
class Program
{
static void Main()
{
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
continue; // 当 i 等于 5 时,跳过本次循环的剩余代码,直接进入下一次循环
}
Console.WriteLine(i);
}
Console.WriteLine("循环结束后继续执行这里的代码");
}
}
在这个例子中,当 i
等于 5 时,continue
语句被执行,Console.WriteLine(i);
这行代码将被跳过,程序直接进入下一次循环,也就是 i
变为 6 时的循环迭代。
3. goto
语句
功能概述
goto
语句允许程序无条件地跳转到同一方法内的另一个带有标签的语句处。虽然 goto
语句提供了强大的跳转功能,但过度使用会使代码的逻辑变得复杂,降低代码的可读性和可维护性,因此一般不建议频繁使用。
语法
goto
语句的语法通常为 goto 标签名;
,标签名是在代码中定义的一个标识符,后面跟着冒号 :
。
使用示例
using System;
class Program
{
static void Main()
{
int i = 0;
Start:
if (i < 10)
{
Console.WriteLine(i);
i++;
goto Start; // 跳转到 Start 标签处继续执行
}
Console.WriteLine("循环结束后继续执行这里的代码");
}
}
在上述代码中,定义了一个标签 Start
。程序执行到 goto Start;
语句时,会跳转到 Start
标签所在的位置继续执行,形成了一个类似循环的结构。
注意事项
- 标签作用域:标签的作用域是定义它的整个方法,也就是说,
goto
语句只能在同一个方法内跳转到标签处。 - 代码可读性:由于
goto
语句会破坏代码的正常执行流程,使代码的逻辑变得难以理解和跟踪,所以在实际开发中应谨慎使用,尽量使用更结构化的控制语句(如if-else
、for
、while
等)来实现程序逻辑。
综上所述,break
、continue
和 goto
语句在 C# 中各自有着独特的功能和使用场景,同学们可以合理运用它们可以有效地控制程序的执行流程,但要注意避免因不当使用而导致代码的混乱。