Skip to content

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); // 多线程并行执行
});

五、条件与循环的最佳实践

  1. 性能考虑

    • 在大量数据遍历时,for通常比foreach稍快
    • 避免在循环内频繁创建对象
  2. 可读性建议

    • 嵌套层次不超过3层
    • 复杂条件建议提取为布尔变量或方法
  3. 现代C#特性

    csharp
    // 模式匹配简化条件判断
    if (obj is string { Length: >5 } s)
    {
        Console.WriteLine($"长字符串:{s}");
    }
  4. 集合遍历新语法

    csharp
    // C# 9.0+ 的简化foreach
    foreach (var item in collection)
    {
        Console.WriteLine(item);
    }

这些控制结构可以组合使用,例如在循环内嵌套条件判断,或在条件分支中使用循环语句。

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer