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

C#控制流

🧩 一、控制流概述

C# 中的控制流语句用于根据条件或循环执行代码块。它们是程序逻辑的核心部分。


✅ 二、1. ifelse ifelse

int score = 85;if (score >= 90)
{Console.WriteLine("优秀");
}
else if (score >= 60)
{Console.WriteLine("及格");
}
else
{Console.WriteLine("不及格");
}

✅ 三、2. switch 语句

示例:选择星期几

Console.Write("请输入星期几(1-7):");
int day = int.Parse(Console.ReadLine());switch (day)
{case 1:Console.WriteLine("星期一");break;case 2:Console.WriteLine("星期二");break;case 3:case 4:Console.WriteLine("工作日");break;case 5:Console.WriteLine("星期五");break;case 6:case 7:Console.WriteLine("周末");break;default:Console.WriteLine("输入错误");break;
}

使用 when 条件匹配(C# 7+)

object value = 100;switch (value)
{case int i when i > 0:Console.WriteLine("正整数");break;case int i when i < 0:Console.WriteLine("负整数");break;default:Console.WriteLine("其他类型或零");break;
}

使用枚举作为匹配表达式

enum Color
{Red,Green,Blue
}Color selected = Color.Green;switch (selected)
{case Color.Red:Console.WriteLine("红色");break;case Color.Green:Console.WriteLine("绿色");break;default:Console.WriteLine("未知颜色");break;
}

switch 表达式(C# 8+)

string result = selected switch
{Color.Red => "红色",Color.Green => "绿色",_ => "未知颜色"
};Console.WriteLine(result);

✅ 四、3. whiledo...while

while 简单循环

int count = 1;
while (count <= 5)
{Console.WriteLine($"计数:{count}");count++;
}

do...while 至少执行一次

int num;
do
{Console.Write("请输入一个数字(输入0退出):");num = int.Parse(Console.ReadLine());
} while (num != 0);

✅ 五、4. for 循环

简单循环输出 1~10

for (int i = 1; i <= 10; i++)
{Console.WriteLine(i);
}

for 遍历数组

int[] numbers = { 10, 20, 30, 40 };for (int i = 0; i < numbers.Length; i++)
{Console.WriteLine($"索引 {i} 的值为:{numbers[i]}");
}

嵌套 for 循环(打印乘法表)

for (int i = 1; i <= 9; i++)
{for (int j = 1; j <= i; j++){Console.Write($"{j}*{i}={i * j}\t");}Console.WriteLine();
}

✅ 六、5. foreach 遍历集合

string[] names = { "Alice", "Bob", "Charlie" };foreach (string name in names)
{Console.WriteLine(name);
}

✅ 七、6. continue 跳过当前迭代

for (int i = 1; i <= 10; i++)
{if (i % 2 == 0)continue;Console.WriteLine(i); // 只输出奇数
}

🧠 八、总结对比表

控制流结构是否支持条件判断是否支持多分支是否可重复执行
if / else
switch
while
do...while
for
foreach

📦 九、完整练习项目模板(Program.cs)

using System;class Program
{enum WeekDay{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}static void Main(){Console.WriteLine("=== C# 控制流综合练习 ===\n");// if / else if / elseint score = 78;if (score >= 90) Console.WriteLine("优秀");else if (score >= 60) Console.WriteLine("及格");else Console.WriteLine("不及格");// switchWeekDay today = WeekDay.Monday;string dayName = today switch{WeekDay.Saturday or WeekDay.Sunday => "周末",_ => "工作日"};Console.WriteLine($"今天是:{dayName}");// whileint count = 1;while (count <= 5){Console.WriteLine($"计数:{count}");count++;}// do whileint num;do{Console.Write("请输入一个数字(输入0退出):");num = int.Parse(Console.ReadLine());} while (num != 0);// for 循环数组int[] nums = { 10, 20, 30 };for (int i = 0; i < nums.Length; i++){Console.WriteLine($"索引 {i} 的值为:{nums[i]}");}// foreachstring[] names = { "Tom", "Jerry" };foreach (string name in names){Console.WriteLine(name);}// continuefor (int i = 1; i <= 10; i++){if (i % 2 == 0) continue;Console.WriteLine(i);}Console.WriteLine("\n按任意键退出...");Console.ReadKey();}
}

🎯 十、运行效果(模拟)

=== C# 控制流综合练习 ===及格
今天是:工作日
计数:1
计数:2
...
请输入一个数字(输入0退出):5
请输入一个数字(输入0退出):0
索引 0 的值为:10
索引 1 的值为:20
索引 2 的值为:30
Tom
Jerry
1
3
5
7
9按任意键退出...
http://www.lryc.cn/news/2378960.html

相关文章:

  • 永久免费,特殊版本!
  • Canva 推出自有应用生成器以与 Bolt 和 Lovable 竞争
  • Matrix-Game:键鼠实时控制、实时生成的游戏生成模型(论文代码详细解读)
  • MySQL 5.7在CentOS 7.9系统下的安装(下)——给MySQL设置密码
  • 机器学习笔记2
  • AgentCPM-GUI,清华联合面壁智能开源的端侧GUI智能体模型
  • Go语言实现链式调用
  • 重排序模型解读 mxbai-rerank-base-v2 强大的重排序模型
  • 期望是什么:(无数次的均值,结合概率)21/6=3.5
  • uniapp-vue3项目中引入高德地图的天气展示
  • 容器化-k8s-介绍及下载安装教程
  • lc42接雨水
  • 通义千问-langchain使用构建(三)
  • uniapp自动构建pages.json的vite插件
  • 系统漏洞扫描服务:维护网络安全的关键与服务原理?
  • nlf loss 学习笔记
  • 【Redis】零碎知识点(易忘 / 易错)总结回顾
  • 基于three.js 全景图片或视频开源库Photo Sphere Viewer
  • LangPDF: Empowering Your PDFs with Intelligent Language Processing
  • OpenVLA (2) 机器人环境和环境数据
  • 代码复现5——VLMaps
  • Ocean: Object-aware Anchor-free Tracking
  • 计算机网络(1)——概述
  • 刘家祎双剧收官见证蜕变,诠释多面人生
  • Axure制作可视化大屏动态滚动列表教程
  • MATLAB实现振幅调制(AM调制信号)
  • LLM-Based Agent综述及其框架学习(五)
  • 6.1.1图的基本概念
  • Linux面试题集合(6)
  • 时间筛掉了不够坚定的东西