当前位置: 首页 > news >正文

C#基础05-控制语句

零、文章目录

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 语句
  • 处理多路离散值匹配,比多层 if 更清晰:
switch (fruit) 
{case "apple":Console.WriteLine("Red");break;  // 必须显式终止case "banana":case "mango":  // 多值共享代码块Console.WriteLine("Yellow");break;default:      // 无匹配时执行Console.WriteLine("Unknown");break;
}
  • 规则限制:
    • 表达式类型:整数、字符、字符串、枚举(禁用浮点数,精度问题易导致意外)
    • 每个 case 必须以 breakreturngoto 结束(防止穿透)

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}");
http://www.dtcms.com/a/431177.html

相关文章:

  • 网站域名过期还能用吗wordpress主题管理插件
  • 扩展BaseMapper类
  • 秦皇岛建设部网站工程建设信息都在哪个网站发布
  • 多模态分类:图文结合的智能识别与代码实战
  • UE5 - C++项目基础
  • Word和WPS文字表格内的文字无法垂直居中?这样设置
  • 平台设计网站公司电话号码网站建设最好用什么语言
  • 【数组倍数去重】2022-11-26
  • vite插件的使用
  • 惠州网站建设是什么渠道查官网
  • 个人做网站有什么条件网站备案信息填写
  • 自建网站代理服务器深圳建设网站推荐
  • 2025 AI 图景:从工具革命到生态重构的生存逻辑
  • 基于人工智能的电信经营分析系统架构研究
  • 环保部网站建设项目验收方案上海哪家做公司网站
  • RoCE V2 深度解析
  • PostgreSQL视图不存数据?那它怎么简化查询还能递归生成序列和控制权限?
  • 小马厂网站建设商业信息发布平台
  • 随机过程:从理论到Python实践
  • 做国外网站用什么颜色建站行业的发展前景
  • Google Earth Pro(谷歌地球)2025年7月大陆版安装教程
  • C++与Open CASCADE中的STEP格式处理:从基础到高级实践
  • 【大模型】ubuntu搭建ollama 使用ollama本地部署deepseek qwen等大模型
  • Win32 托盘图标弹出菜单使用
  • MATLAB中SIL 和 PIL 仿真
  • 基于NUC和STM32F103的无人车
  • wordpress网站的配置文件进出口外贸公司名字
  • 【报错】qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““
  • 彩票网站给实体店做代销个人网站设计论文道客巴巴
  • 学校网站建设注意点美妆网站设计模板