在编程中,控制流语句是程序执行流程的基石。它们决定了代码的执行顺序,允许程序根据条件执行不同的代码块。C#,作为一门现代的、类型安全的面向对象编程语言,提供了丰富的控制流语句,使得编写灵活且强大的程序成为可能。本文将深入探讨C#中的控制流语句,包括它们的用途、语法和一些实用的编程技巧。
1. 条件语句
条件语句允许程序根据条件表达式的真假来执行不同的代码块。
1.1 if语句
if
语句是最基本的条件语句,它根据条件表达式的真假来决定是否执行特定的代码块。
int number = 10;
if (number > 5)
{
Console.WriteLine("Number is greater than 5");
}
1.2 if...else语句
当需要在条件为真时执行一段代码,条件为假时执行另一段代码时,可以使用if...else
语句。
int number = 5;
if (number > 5)
{
Console.WriteLine("Number is greater than 5");
}
else
{
Console.WriteLine("Number is not greater than 5");
}
1.3 if...else if...else语句
当有多个条件需要检查时,可以使用if...else if...else
语句。
int number = 3;
if (number > 5)
{
Console.WriteLine("Number is greater than 5");
}
else if (number < 5)
{
Console.WriteLine("Number is less than 5");
}
else
{
Console.WriteLine("Number is equal to 5");
}
1.4 switch语句
switch
语句是另一种条件语句,它允许根据变量的值执行不同的代码块。
int number = 2;
switch (number)
{
case 1:
Console.WriteLine("Number is 1");
break;
case 2:
Console.WriteLine("Number is 2");
break;
default:
Console.WriteLine("Number is neither 1 nor 2");
break;
}
2. 循环语句
循环语句允许程序重复执行一段代码,直到满足特定的退出条件。
2.1 for循环
for
循环是一种基本的循环结构,它允许程序员指定循环的初始条件、循环继续的条件和每次迭代后执行的操作。
for (int i = 0; i < 5; i )
{
Console.WriteLine(i);
}
2.2 while循环
while
循环会一直执行,直到条件表达式的结果为false
。
int i = 0;
while (i < 5)
{
Console.WriteLine(i);
i ;
}
2.3 do...while循环
do...while
循环至少执行一次循环体,然后检查条件表达式,如果为true
,则继续执行循环体。
int i = 0;
do
{
Console.WriteLine(i);
i ;
} while (i < 5);
3. 跳转语句
跳转语句允许程序跳转到代码的另一部分执行。
3.1 break语句
break
语句用于立即退出循环或switch语句。
for (int i = 0; i < 5; i )
{
if (i == 3)
{
break;
}
Console.WriteLine(i);
}
3.2 continue语句
continue
语句用于跳过当前迭代的剩余部分,并开始下一次迭代。
for (int i = 0; i < 5; i )
{
if (i % 2 == 0)
{
continue;
}
Console.WriteLine(i);
}
3.3 goto语句
goto
语句允许程序跳转到代码中的特定标签。
goto Label;
for (int i = 0; i < 5; i )
{
Console.WriteLine(i);
}
Label:
Console.WriteLine("After loop");
4. 异常处理
异常处理语句允许程序在遇到错误时优雅地处理,而不是崩溃。
4.1 try...catch语句
try...catch
语句用于捕获和处理异常。
try
{
int result = 10 / 0;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Error: " ex.Message);
}
4.2 finally语句
finally
块总是会执行,无论是否发生异常。
try
{
// Code that might throw an exception
}
catch (Exception ex)
{
// Handle the exception
}
finally
{
// Code that will always be executed
}
4.3 throw语句
throw
语句用于手动抛出一个异常。
public void Divide(int a, int b)
{
if (b == 0)
{
throw new DivideByZeroException("Cannot divide by zero.");
}
Console.WriteLine(a / b);
}