2.3 控制流(if, switch, 循环)
控制流是编程语言中用于控制程序执行顺序的核心机制。在C#中,主要通过条件语句(if/else、switch)和循环语句(for、while、do-while、foreach)实现逻辑分支和重复操作。
1. 条件语句
1.1 if/else 语句
用于基于布尔表达式的结果执行不同的代码块。
int score = 85;
if (score >= 90)
{
Console.WriteLine("优秀");
}
else if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
1.2 三元运算符
简化简单的if-else逻辑。
string result = (score >= 60) ? "及格" : "不及格";
2. switch 语句
适用于多分支条件判断,比嵌套if-else更清晰。
string day = "Monday";
switch (day)
{
case "Monday":
Console.WriteLine("工作日");
break;
case "Saturday":
case "Sunday":
Console.WriteLine("周末");
break;
default:
Console.WriteLine("未知");
break;
}
C# 8.0+ 新特性:支持模式匹配和
switch表达式:string message = day switch { "Monday" => "工作日", _ => "其他" };
3. 循环语句
3.1 for 循环
适用于已知迭代次数的场景。
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"当前值: {i}");
}
3.2 while 循环
条件满足时重复执行。
int count = 0;
while (count < 3)
{
Console.WriteLine(count);
count++;
}
3.3 do-while 循环
至少执行一次,再检查条件。
do
{
Console.WriteLine("至少执行一次");
} while (false);
3.4 foreach 循环
遍历集合或数组。
string[] colors = { "Red", "Green", "Blue" };
foreach (string color in colors)
{
Console.WriteLine(color);
}
4. 控制流关键字
4.1 break
立即终止循环或switch分支。
4.2 continue
跳过当前循环迭代,进入下一次循环。
4.3 return
退出方法并返回结果(若方法有返回值)。
5. 实际应用示例
示例1:输入验证
while (true)
{
Console.Write("请输入1-100的数字:");
if (int.TryParse(Console.ReadLine(), out int num) && num >= 1 && num <= 100)
{
break;
}
Console.WriteLine("输入无效!");
}
示例2:遍历集合过滤数据
List<int> numbers = new List<int> { 10, 20, 30, 40 };
foreach (var num in numbers.Where(n => n > 15))
{
Console.WriteLine(num);
}
总结
| 控制流类型 | 适用场景 | 特点 |
|---|---|---|
if-else | 简单或嵌套条件判断 | 灵活性高 |
switch | 多分支等值比较 | 可读性好 |
for | 已知迭代次数 | 可控制初始化和步长 |
foreach | 遍历集合 | 简洁安全(只读) |
while | 条件满足时循环(可能不执行) | 适合不确定次数的循环 |
掌握控制流是编写逻辑清晰、高效代码的基础。后续章节将结合方法、集合等特性进一步扩展其应用场景。
