C# 循环语句与条件语句详解
一、条件语句
1. if-else 语句
csharp
if (condition1)
{
// 条件1为true时执行
}
else if (condition2)
{
// 条件2为true时执行
}
else
{
// 所有条件都为false时执行
}2. switch 语句(模式匹配增强)
csharp
switch (value)
{
case int i when i > 0:
Console.WriteLine("正整数");
break;
case string s:
Console.WriteLine($"字符串长度:{s.Length}");
break;
case null:
Console.WriteLine("值为null");
break;
default:
Console.WriteLine("其他类型");
break;
}3. 三元运算符
csharp
string result = (age >= 18) ? "成年人" : "未成年人";二、循环语句
1. for 循环
csharp
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
if (i == 5) break; // 可提前退出
}2. foreach 循环
csharp
foreach (var item in collection)
{
Console.WriteLine(item);
// 注意:不能修改迭代变量item
}3. while 循环
csharp
while (condition)
{
// 条件为true时持续执行
}4. do-while 循环
csharp
do
{
// 至少执行一次
} while (condition);三、循环控制语句
1. break
csharp
for (int i = 0; i < 10; i++)
{
if (i == 5) break; // 立即退出整个循环
}2. continue
csharp
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0) continue; // 跳过本次迭代
Console.WriteLine(i); // 只输出奇数
}3. return(在循环中使用)
csharp
foreach (var item in items)
{
if (item == target) return true; // 直接退出方法
}四、特殊循环场景
1. 嵌套循环
csharp
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
Console.WriteLine($"{i}-{j}");
}
}2. 无限循环
csharp
while (true)
{
// 需要配合break语句退出
if (DateTime.Now.Second == 30) break;
}3. 并行循环(Parallel.For)
csharp
Parallel.For(0, 100, i =>
{
Console.WriteLine(i); // 多线程并行执行
});五、条件与循环的最佳实践
性能考虑:
- 在大量数据遍历时,
for通常比foreach稍快 - 避免在循环内频繁创建对象
- 在大量数据遍历时,
可读性建议:
- 嵌套层次不超过3层
- 复杂条件建议提取为布尔变量或方法
现代C#特性:
csharp// 模式匹配简化条件判断 if (obj is string { Length: >5 } s) { Console.WriteLine($"长字符串:{s}"); }集合遍历新语法:
csharp// C# 9.0+ 的简化foreach foreach (var item in collection) { Console.WriteLine(item); }
这些控制结构可以组合使用,例如在循环内嵌套条件判断,或在条件分支中使用循环语句。