选择语句

彭博 发布于 2012/03/09 15:22
阅读 100
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

C#的选择语句和其他结构化编程大致一样
 简单选择语句
1              int  i  =   ;
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  =   ;
2
3             System.Console.WriteLine(i == 10 ? " true " : " false " );
要注意的是?:是右结合的方式,如果你的处理比较复杂,你还是不要用?:了,会让维护你代码的人恨死你的。
1              int  i  =   ;
2
3             System.Console.WriteLine(i  ==   10   ?   " true "  : i  ==   5   ?   " false "  :  " true " );
代码是写给人看的,以上代码除了能让你迷惑之外,其余并没有什么效果,所以你以后的代码都希望能让人阅读清晰。

多条件判断。
我比较反对写以下代码
 1              int  i  =   ;
 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  =   ;
 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  =   ;
 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  =   ;
 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            }

 


原文链接: http://blog.csdn.net/shyleoking/article/details/4779678
加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部