博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择语句
阅读量:6882 次
发布时间:2019-06-27

本文共 1743 字,大约阅读时间需要 5 分钟。

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
你可能感兴趣的文章
lvs规则条目保存(keepalive作HA)
查看>>
宽字节(宽字符)注入
查看>>
python类的私有变量
查看>>
Linux基础知识---计划任务
查看>>
Ceph集群块设备使用-创建和使用OSD
查看>>
大数据||hadoop分布式集群安装
查看>>
华为设备默认console密码
查看>>
wxWidgets第四课 EVT_LEFT_UP关联鼠标弹起事件不生效
查看>>
【故障解决】ORA-06502错误解决
查看>>
Linux中./configure,make,make install的作用
查看>>
如何使用Docker、Docker-Compose和Rancher搭建部署Pipeline(四)
查看>>
Pinger2
查看>>
SQL Server 2014如何提升非在线的在线操作
查看>>
ASP.NET中模拟管理员用户提升权限
查看>>
beego3---gohttp底层实现
查看>>
二叉树
查看>>
.net framework3.5新特性1:Lambda表达式
查看>>
对Kalman(卡尔曼)滤波器的理解@@zz
查看>>
sybase备份与恢复及sybase常用语句
查看>>
EBS Concurrent Manager(并发管理器)异常处理
查看>>