01-C#入门(分支控制语句)
说实话,《C#入门经典》这本书对入门的同学来说真的太棒了,先不说内容如何,就作者先以控制台(命令行)调试程序的方法,就能够最大限度地让你关注学习的内容,而不是花哨的界面调试。
现在学习是下载的电子书,无论是复习还是整理笔记,都不方便。如果,自己能坚持写笔记的方式学习完前7章,那我就去亚马逊把这本书买了。
- 三元运算符:?
很多语言中都有这个运算符,原理都是一样的,区别可能就在于书写的格式上。习惯了excel的方式,总想把多个表达式用 , 号隔开,呵呵。在C#的三元运算符 ? 中,返回的两个表达式之间,使用 : 号隔开,而不是 , 号,注意了:
1 | string h = (k<10) ? "k小于10" : "k大于或等于10" ; |
当然,这种表达式适合简单的比较后返回值处理,但对于根据比较结果而执行大量的代码就不太适用了。
- IF语句
IF语句没有返回值(不像 ? ),而且可以执行复杂的语句代码块,使用 { } 号包围起来就OK了。和其它的语言差不多:if……elseif……else……,还是举个例子吧,看看编译的效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | string msg; double i, j; Console.WriteLine( "请输入第1个数的值:" ); i = Convert.ToDouble(Console.ReadLine()); Console.WriteLine( "请输入第2个数的值:" ); j = Convert.ToDouble(Console.ReadLine()); if (i>j) { msg = "大于" ; } else if (i == j) { msg = "等于" ; } else { msg = "小于" ; } Console.WriteLine( "第一个操作数 {0} 第二个操作数" , msg); Console.ReadKey(); |
这个例子比较简单,但是却从中看出一个编程思想。换作以前,自己肯写会在每个if语句块中加入Console.WriteLine来输出结果,而这儿就精简到只需要一条输出语句。以后要在这方面多注意。
- switch语句
IF语句虽然好用,但是遇到离散的值,用IF来比较,就会显得很不好读。另外,switch是将表达式的值与可选项进行匹配,而不是类似if的条件判断(>、<)。被匹配的值必须是常数值,可以为字面值(1、2、3),或者是常量:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | const string myName = "karli" ; const string sexyName = "angelina" ; const string sillyName = "ploppy" ; string name; Console.WriteLine( "请输入你的姓名:" ); name = Console.ReadLine(); switch (name.ToLower()) { case myName: Console.WriteLine( "你和我有相同的名字,{0}" , myName); break ; case sexyName: Console.WriteLine( "哇~,{0}名字好性感哦。" , sexyName); break ; case sillyName: case "h" : { Console.WriteLine( "{0}这名字真是太漂了~~" , sillyName); Console.WriteLine( "那当然~" ); break ; } default : Console.WriteLine( "hello {0}" , name); break ; } Console.ReadKey(); |
每个case执行后的语句,都需要放置一个break,包括default也需要。另外,case也可以多个堆叠,只要其中一个满足条件,就会执行后面的语句。而在case后,也可以使用 {} 把语句块包围起来,执行多条语句。
- 结语
其实在学习过程中,示例的编写、调试通过是很重要的,不止加深了印象,还会引发你的思考。当然,要是有一些小的程序练练手,是非常不错的哈,大家有需求或想法的话可以联系我哈。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库