选择语句

本文详细介绍了C#中的选择语句,包括简单的if-else结构、三目运算符的使用及其注意事项,以及多分支判断的switch语句的正确用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#的选择语句和其他结构化编程大致一样
简单选择语句
1None.gifinti=0;
2None.gifif(i==10)
3ExpandedBlockStart.gifContractedBlock.gifdot.gif{
4InBlock.gifSystem.Console.Write("true");
5ExpandedBlockEnd.gif}

6None.gifelse
7ExpandedBlockStart.gifContractedBlock.gifdot.gif{
8InBlock.gifSystem.Console.Write("false");
9ExpandedBlockEnd.gif}
注意的是,在第2行的表达式中,要求的必须是逻辑表达式而不允许是赋值。

简单语句可以被转为三目运算,条件是你的if else 语句足够的简单
1None.gifinti=0;
2None.gif
3None.gifSystem.Console.WriteLine(i==10?"true":"false");
要注意的是?:是右结合的方式,如果你的处理比较复杂,你还是不要用?:了,会让维护你代码的人恨死你的。
1None.gifinti=0;
2None.gif
3None.gifSystem.Console.WriteLine(i==10?"true":i==5?"false":"true");
代码是写给人看的,以上代码除了能让你迷惑之外,其余并没有什么效果,所以你以后的代码都希望能让人阅读清晰。

多条件判断。
我比较反对写以下代码
1None.gifinti=0;
2None.gif
3None.gifif(i==10)
4ExpandedBlockStart.gifContractedBlock.gifdot.gif{
5InBlock.gifSystem.Console.WriteLine("i==10");
6ExpandedBlockEnd.gif}

7None.gifelseif(i<10)
8ExpandedBlockStart.gifContractedBlock.gifdot.gif{
9InBlock.gifSystem.Console.WriteLine("i<10");
10ExpandedBlockEnd.gif}

11None.gifelse
12ExpandedBlockStart.gifContractedBlock.gifdot.gif{
13InBlock.gifSystem.Console.WriteLine("i>10");
14ExpandedBlockEnd.gif}

以上的需求完全可以写为
1None.gifinti=0;
2None.gif
3None.gif
4None.gifif(i==10)
5ExpandedBlockStart.gifContractedBlock.gifdot.gif{
6InBlock.gifSystem.Console.WriteLine("i==10");
7ExpandedBlockEnd.gif}

8None.gifelse
9ExpandedBlockStart.gifContractedBlock.gifdot.gif{
10InBlock.gifif(i<10)
11ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
12InBlock.gifSystem.Console.WriteLine("i<10");
13ExpandedSubBlockEnd.gif}

14InBlock.gifelse
15ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
16InBlock.gifSystem.Console.WriteLine("i>10");
17ExpandedSubBlockEnd.gif}

18ExpandedBlockEnd.gif}

现在我们来看下多分支判断:switch
1None.gifinti=0;
2None.gif
3None.gifswitch(i)
4ExpandedBlockStart.gifContractedBlock.gifdot.gif{
5InBlock.gifcase1:
6InBlock.gifSystem.Console.Write(i);
7InBlock.gifbreak;
8InBlock.gifcase2:
9InBlock.gifSystem.Console.Write(i);
10InBlock.gifbreak;
11InBlock.gifcase3:
12InBlock.gifSystem.Console.Write(i);
13InBlock.gifgotocase5;
14InBlock.gifcase5:
15InBlock.gifSystem.Console.Write(i);
16InBlock.gifgotodefault;
17InBlock.gifdefault:
18InBlock.gifSystem.Console.Write("default");
19InBlock.gifbreak;
20ExpandedBlockEnd.gif}

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

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

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

1None.gifinti=0;
2None.gif
3None.gifswitch(i)
4ExpandedBlockStart.gifContractedBlock.gifdot.gif{
5InBlock.gifcase1:
6InBlock.gifcase2:
7InBlock.gifcase3:
8InBlock.gifSystem.Console.Write(i);
9InBlock.gifgotocase5;
10InBlock.gifcase5:
11InBlock.gifSystem.Console.Write(i);
12InBlock.gifgotodefault;
13InBlock.gifdefault:
14InBlock.gifSystem.Console.Write("default");
15InBlock.gifbreak;
16ExpandedBlockEnd.gif}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值