C# 零基础入门实战:从变量到循环,手把手带你写第一个实用程序

📅 2026/7/10 17:38:46
C# 零基础入门实战:从变量到循环,手把手带你写第一个实用程序
阅读对象完全零基础想踏实学好 C# 的小白目录为什么选择 C#开发环境搭建5 分钟搞定第一个程序控制台问候核心知识①变量与数据类型附练习核心知识②条件判断if/else switch核心知识③循环for / while / foreach核心知识④数组与集合List 必学综合实战学生成绩管理系统控制台版练习题答案及解析下一步学习建议1. 为什么选择 C#C# 是微软开发的现代、类型安全的面向对象语言。它不像 C 那么复杂也不像 Python 那样过于“自由”自由对新手有时是陷阱。C# 语法严谨工具链成熟Visual Studio 宇宙第一 IDE而且应用极广桌面应用WinForms / WPFWeb 后端ASP.NET Core游戏开发Unity 脚本移动端Xamarin / MAUI对小白最友好的一点你写错类型编译器会直接报错并提示帮你养成良好编码习惯。2. 开发环境搭建5 分钟搞定下载Visual Studio Community 2022免费或Visual Studio Code .NET SDK。安装时勾选“.NET 桌面开发”和“ASP.NET 和 Web 开发”工作负载。新建项目选择“控制台应用 (.NET Core)”或“控制台应用 (.NET Framework)”均可。推荐 .NET 6/8长期支持新建项目名CsBasicTutorial。3. 第一个程序控制台问候csharpusing System; namespace CsBasicTutorial { class Program { static void Main(string[] args) { Console.WriteLine(欢迎来到 C# 世界); Console.Write(请输入你的名字); string name Console.ReadLine(); Console.WriteLine($你好{name}今天我们一起学基础。); Console.ReadKey(); // 等待按键退出 } } }Console.WriteLine输出并换行Console.Write不换行。Console.ReadLine()读取用户输入字符串类型。$你好{name}是字符串插值把变量值嵌入字符串。运行后输入名字程序会友好回应。4. 核心知识①变量与数据类型附练习4.1 常用基本数据类型类型关键字举例说明整数intint age 25;32位有符号整数范围约±21亿长整数longlong pop 80亿;更大范围浮点数doubledouble pi 3.14;双精度小数布尔boolbool isOK true;真/假字符charchar grade A;单个字符用单引号字符串stringstring msg hi;文本用双引号4.2 变量命名规则必须记住只能由字母、数字、下划线组成且不能以数字开头。推荐使用驼峰命名法camelCase如studentNametotalScore。不要用int、class等关键字。4.3 类型转换经常考隐式转换小范围转大范围如int→double。显式转换强制大转小用(类型)如int x (int)3.14;会丢失小数。安全转换用Convert类int num Convert.ToInt32(123);。 练习 1计算圆面积请编写程序提示用户输入圆的半径double然后计算并输出圆的面积π取3.14。要求使用变量存储半径和面积并输出格式为“半径为 [半径] 的圆面积为 [面积]”。提示面积 3.14 * 半径 * 半径。答案在文末5. 核心知识②条件判断if/else switch5.1 if / else if / elsecsharpint score 85; if (score 90) Console.WriteLine(优秀); else if (score 70) Console.WriteLine(良好); else Console.WriteLine(仍需努力);5.2 switch 表达式C# 8 简洁写法csharpstring level score switch { 90 A, 70 B, _ C // _ 表示其他所有情况 }; Console.WriteLine($等级{level});注意switch 表达式比传统 switch 语句更简洁适合新手理解。 练习 2奇偶数判断 等级划分用户输入一个整数判断它是奇数还是偶数输出“xx 是奇数”或“xx 是偶数”。用户输入一个百分制成绩0-100输出对应的五级制90-100为A80-89为B70-79为C60-69为D0-59为E。如果输入超出范围提示“无效成绩”。6. 核心知识③循环for / while / foreach6.1 for 循环确定次数csharp// 输出 1 到 10 for (int i 1; i 10; i) { Console.Write(i ); }6.2 while 循环条件控制csharpint sum 0; int num 1; while (num 100) { sum num; // 累加 num; } Console.WriteLine($1到100的和为{sum});6.3 foreach遍历集合后面数组部分会用到csharpstring[] fruits { 苹果, 香蕉, 橙子 }; foreach (string fruit in fruits) { Console.WriteLine(fruit); } 练习 3打印九九乘法表使用嵌套 for 循环在控制台打印如下格式的九九乘法表三角形状text1*11 1*22 2*24 1*33 2*36 3*39 ...要求每行末尾对齐可使用\t制表符。7. 核心知识④数组与集合List 必学7.1 数组固定长度csharpint[] numbers new int[5]; // 声明长度为5 numbers[0] 10; numbers[1] 20; // 或者初始化int[] nums { 1, 2, 3 };缺点长度固定不能动态增删。7.2 ListT动态集合更常用csharpusing System.Collections.Generic; // 必须引用 Liststring names new Liststring(); names.Add(张三); names.Add(李四); names.Remove(张三); Console.WriteLine($当前人数{names.Count}); // 1List 提供了Add、Remove、Insert、Contains等方法非常灵活。 练习 4学生名单管理创建一个Liststring存储学生姓名。用 while 循环让用户不断输入姓名输入空字符串回车时停止。输入结束后输出所有学生姓名格式为“第1位张三”、“第2位李四”……然后询问用户要删除哪个姓名如果存在则删除并输出删除成功否则提示不存在。8. 综合实战学生成绩管理系统控制台版把前面知识融合起来做一个迷你系统功能如下用ListStudent存储学生对象Student 类包含 Name 和 Score。菜单添加学生姓名成绩查看所有学生显示姓名、成绩、等级计算平均分删除学生按姓名退出8.1 定义 Student 类csharppublic class Student { public string Name { get; set; } public double Score { get; set; } // 构造函数 public Student(string name, double score) { Name name; Score score; } // 根据成绩返回等级 public string GetGrade() { return Score switch { 90 A, 80 B, 70 C, 60 D, _ E }; } }8.2 主程序逻辑部分代码csharpusing System; using System.Collections.Generic; namespace StudentManager { class Program { static ListStudent students new ListStudent(); static void Main() { while (true) { Console.WriteLine(\n 学生成绩管理系统 ); Console.WriteLine(1. 添加学生); Console.WriteLine(2. 查看所有学生); Console.WriteLine(3. 计算平均分); Console.WriteLine(4. 删除学生); Console.WriteLine(5. 退出); Console.Write(请选择); string choice Console.ReadLine(); switch (choice) { case 1: AddStudent(); break; case 2: ShowAll(); break; case 3: CalcAverage(); break; case 4: DeleteStudent(); break; case 5: Console.WriteLine(感谢使用再见); return; default: Console.WriteLine(无效选项请重新输入。); break; } } } static void AddStudent() { Console.Write(姓名); string name Console.ReadLine(); Console.Write(成绩); double score double.Parse(Console.ReadLine()); // 简单处理实际要用 try students.Add(new Student(name, score)); Console.WriteLine($已添加学生{name}成绩 {score}); } static void ShowAll() { if (students.Count 0) { Console.WriteLine(暂无学生数据。); return; } Console.WriteLine(姓名\t成绩\t等级); foreach (var s in students) { Console.WriteLine(${s.Name}\t{s.Score}\t{s.GetGrade()}); } } static void CalcAverage() { if (students.Count 0) { Console.WriteLine(暂无数据无法计算平均分。); return; } double sum 0; foreach (var s in students) sum s.Score; double avg sum / students.Count; Console.WriteLine($全班平均分{avg:F2}); // :F2 保留两位小数 } static void DeleteStudent() { Console.Write(请输入要删除的学生姓名); string name Console.ReadLine(); // 找到第一个匹配的 Student target students.Find(s s.Name name); if (target ! null) { students.Remove(target); Console.WriteLine($已删除学生{name}); } else { Console.WriteLine($未找到姓名为 {name} 的学生。); } } } }这个实战涵盖了类、对象、List、方法、switch、循环、用户交互是你第一个“有用”的程序。9. 练习题答案及解析练习1 答案csharpConsole.Write(请输入圆的半径); double radius double.Parse(Console.ReadLine()); double area 3.14 * radius * radius; Console.WriteLine($半径为 {radius} 的圆面积为 {area:F2}); // 保留两位小数解析double.Parse将字符串转为 double注意如果输入非数字会异常但新手阶段先这样。练习2 答案部分奇偶数csharpConsole.Write(输入整数); int num int.Parse(Console.ReadLine()); if (num % 2 0) Console.WriteLine(${num} 是偶数); else Console.WriteLine(${num} 是奇数);成绩等级csharpint score int.Parse(Console.ReadLine()); if (score 0 || score 100) Console.WriteLine(无效成绩); else { char grade score switch { 90 A, 80 B, 70 C, 60 D, _ E }; Console.WriteLine($等级{grade}); }练习3 答案九九乘法表csharpfor (int i 1; i 9; i) { for (int j 1; j i; j) { Console.Write(${j}*{i}{j * i}\t); } Console.WriteLine(); }要点外层控制行内层控制每行的列数j i\t使对齐。练习4 答案关键代码csharpListstring names new Liststring(); Console.WriteLine(请输入学生姓名空回车结束); while (true) { string input Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; names.Add(input); } for (int i 0; i names.Count; i) Console.WriteLine($第{i1}位{names[i]}); Console.Write(请输入要删除的姓名); string delName Console.ReadLine(); if (names.Remove(delName)) Console.WriteLine(删除成功); else Console.WriteLine(未找到该姓名。);10. 下一步学习建议掌握异常处理try-catch防止程序崩溃如输入非数字。深入学习面向对象继承、多态、接口这是 C# 的灵魂。文件操作将学生数据保存到文本文件或 JSON。数据库配合 SQL Server 或 SQLite 做持久化。项目实战做一个简易计算器、待办事项清单等。最后的话C# 是一门“越学越顺手”的语言它的设计哲学让你在写代码时很少迷茫。一定要亲手敲代码不要只复制粘贴。把上面练习题全部做一遍再自己扩展学生管理系统比如增加修改成绩功能你就能顺利迈过新手门槛。如果遇到问题欢迎在评论区留言我会尽力解答。加油未来的 C# 开发者下一篇预告C# 面向对象核心——类、继承与多态用游戏角色设计带你理解抽象概念。敬请期待