C#基础05-控制语句
1、条件分支语句
(1)if-else
语句
if (score >= 90)
{Console.WriteLine("优秀");
}
else if (score >= 60)
{Console.WriteLine("及格");
}
else
{Console.WriteLine("不及格");
}
- 关键特性:
- 支持嵌套,
else
匹配最近未配对的 if
- 表达式需返回
bool
值(或可隐式转换)
(2)switch
语句
switch (fruit)
{case "apple":Console.WriteLine("Red");break; case "banana":case "mango": Console.WriteLine("Yellow");break;default: Console.WriteLine("Unknown");break;
}
- 规则限制:
- 表达式类型:整数、字符、字符串、枚举(禁用浮点数,精度问题易导致意外)
- 每个
case
必须以 break
、return
或 goto
结束(防止穿透)
2、循环迭代语句
(1)基础循环类型
语句 | 适用场景 | 示例 | 生命周期 |
---|
while | 条件前置,可能零次执行 | while (i < 5) { i++; } | 先检查后执行 |
do-while | 条件后置,至少执行一次 | do { sum += i; } while (i > 0); | 先执行后检查 [4] |
for | 固定次数/明确迭代器控制 | for (int i=0; i<10; i++) | 初始化→检查→执行→更新 |
(2)集合遍历
int[] nums = {1, 2, 3};
foreach (var num in nums)
{Console.WriteLine(num * 2);
}
- 注意:
- 迭代期间禁止修改集合(如增删元素),否则抛出
InvalidOperationException
- 支持数组、
List<T>
、IEnumerable
等实现迭代器模式的对象
3、流程控制语句
(1)作用
语句 | 作用 | 典型场景 |
---|
break | 立即退出当前循环或 switch | 循环内满足条件时提前终止 |
continue | 跳过本轮循环剩余代码 | 过滤集合中无效元素 |
return | 退出方法并返回结果 | 方法逻辑完成时返回数据 |
goto | 跳转到指定标签(慎用) | 退出深层嵌套循环(替代多重 break ) |
(2)应用示例
for (int i=0; i<100; i++)
{if (i == 50) break; if (i % 2 == 0) continue; Console.WriteLine(i);
}
4、最佳实践与性能优化
(1)分支选择原则
- 离散值匹配用
switch
(>3个分支时更高效) - 范围判断或复杂逻辑用
if-else
(2)循环性能关键
- 避免在循环内声明大对象(引发频繁GC)
- 优先
foreach
简化代码,大数据集考虑 for
并行优化
(3)防御性编程
switch
必须包含 default
处理意外值- 循环变量修改前检查边界,防止越界
(4)控制语句决策树

5、综合实例场景
int excellentCount = 0;
double total = 0;while (true)
{Console.Write("输入成绩(-1结束): ");double score = Convert.ToDouble(Console.ReadLine());if (score == -1) break; total += score;switch (score / 10) {case >= 9: excellentCount++; break;case >= 6: Console.WriteLine("及格"); break;default: Console.WriteLine("需补考"); break;}
}
Console.WriteLine($"优秀率: {excellentCount / total:P}");