选择语句

简介:

C#的选择语句和其他结构化编程大致一样
简单选择语句
 

1   int  i  =   0 ;
2   if  (i  ==   10 )
3   {
4 System.Console.Write("true"); 
5 }

6   else
7   {
8 System.Console.Write("false");
9 }

注意的是,在第2行的表达式中,要求的必须是逻辑表达式而不允许是赋值。

简单语句可以被转为三目运算,条件是你的if else 语句足够的简单
 

1   int  i  =   0 ;
2
3  System.Console.WriteLine(i == 10 ? " true " : " false " );

要注意的是?:是右结合的方式,如果你的处理比较复杂,你还是不要用?:了,会让维护你代码的人恨死你的。
 

1   int  i  =   0 ;
2
3  System.Console.WriteLine(i  ==   10   ?   " true "  : i  ==   5   ?   " false "  :  " true " );

代码是写给人看的,以上代码除了能让你迷惑之外,其余并没有什么效果,所以你以后的代码都希望能让人阅读清晰。

多条件判断。
我比较反对写以下代码
 

1   int  i  =   0 ;
2
3   if  (i  ==   10 )
4   {
5 System.Console.WriteLine("i==10");
6 }

7   else   if  (i  <   10 )
8   {
9 System.Console.WriteLine("i<10");
10 }

11   else
12   {
13 System.Console.WriteLine("i>10");
14 }


以上的需求完全可以写为
 

1   int  i  =   0 ;
2
3
4   if  (i  ==   10 )
5   {
6 System.Console.WriteLine("i==10");
7 }

8   else
9   {
10 if (i < 10)
11 {
12 System.Console.WriteLine("i<10");
13 }

14 else
15 {
16 System.Console.WriteLine("i>10");
17 }

18 }


现在我们来看下多分支判断:switch
 

1   int  i  =   0 ;
2
3   switch  (i)
4   {
5 case 1:
6 System.Console.Write(i);
7 break;
8 case 2:
9 System.Console.Write(i);
10 break;
11 case 3:
12 System.Console.Write(i);
13 goto case 5;
14 case 5:
15 System.Console.Write(i);
16 goto default;
17 default:
18 System.Console.Write("default");
19 break;
20 }

注意第3行,表达式的值是标量值,不是逻辑表达式。

在这个表达式中可以使用的值是:sbyte、byte、short、ushort、int、uint、long、ulong、char、string 或枚举类型。但不要慌,其实就两类值:数字和字符串。

然后来看下第7、10、12、15和19行的break或goto。switch要求case块必须有明确的可跳出的控制语句,不可以贯穿。
但有一种情况可以列外
 

1   int  i  =   0 ;
2
3   switch  (i)
4   {
5 case 1:
6 case 2:
7 case 3:
8 System.Console.Write(i);
9 goto case 5;
10 case 5:
11 System.Console.Write(i);
12 goto default;
13 default:
14 System.Console.Write("default");
15 break;
16 }


本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806921
相关文章
|
1天前
|
人工智能 安全 测试技术
|
3天前
|
云安全 人工智能 安全
阿里云 Agentic SOC 位居 IDC MarketScape安全运营智能体2026领导者类别
以 Agentic AI 重构安全运营闭环,阿里云云安全在产品能力与市场份额
1153 3
|
3天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
347 93
|
4天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
561 11
|
7天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
7天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
361 0

热门文章

最新文章