zoukankan      html  css  js  c++  java
  • 选择语句

    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            }
  • 相关阅读:
    a*b高精度数组算法
    vscode plugins
    vscode keys
    vscode setting.jsonxx
    vscode settings.json
    webstorm keys
    vscode extensions
    vscode wechat settings.json
    vscode sass live compiler
    webstorm crack
  • 原文地址:https://www.cnblogs.com/shyleoking/p/635379.html
Copyright © 2011-2022 走看看