zoukankan      html  css  js  c++  java
  • .net 基础知识 ——条件语句

     

    If 语句

    C# VB
    int i = 3;
    if (i < 5)
    {
        Console.WriteLine("i 小于 5");
    }
    Dim i As Integer = 3
    If i < 5 Then
        Console.WriteLine("i 小于 5")
    End If
    int i = 9;
    if (!(i < 5))
    {
        Console.WriteLine("i 大于等于 5");
    }
    Dim i As Integer = 9
    If Not i < 5 Then
        Console.WriteLine("i 大于等于 5")
    End If
    int i = 3;
    if (i < 5)
    {
        Console.WriteLine("i 小于 5");
    }
    else
    {
        Console.WriteLine("i 大于等于 5");
    }
    Dim i As Integer = 3
    If i < 5 Then
        Console.WriteLine("i 小于 5")
    Else
        Console.WriteLine("i 大于等于 5")
    End If
    int i = 3;
    if (i < 5)
    {
        Console.WriteLine("i 小于 5");
    }
    else if (i == 5)
    {
        Console.WriteLine("i 等于 5");
    }
    else
    {
        Console.WriteLine("i 大于 5");
    }
    Dim i As Integer = 3
    If i < 5 Then
        Console.WriteLine("i 小于 5")
    ElseIf i = 5 Then
        Console.WriteLine("i 等于 5")
    Else
        Console.WriteLine("i 大于 5");
    End If

    switch 语句

    C# VB
    int i = 9;
    switch (i)
    {
        case 3:
            Console.WriteLine("i = 3");
            break;
        case 5:
            Console.WriteLine("i = 5");
            break;
        case 9:
            Console.WriteLine("i = 9");
            break;
        default:
            Console.WriteLine("other");
            break;
    }
    Dim i As Integer = 9
    Select Case i
        Case 3
            Console.WriteLine("i = 3")
        Case 5
            Console.WriteLine("i = 5")
        Case 9
            Console.WriteLine("i = 9")
        Case Else
            Console.WriteLine("other")
    End Select
    int i = 5;
    switch (i)
    {
        case 3:
        case 5:
        case 9:
            Console.WriteLine("i = 3 or 5 or 9");
            break;
        default:
            Console.WriteLine("other");
            break;
    }
    Dim i As Integer = 5
    Select Case i
        Case 3, 5, 9
            Console.WriteLine("i = 3 or 5 or 9")
        Case Else
            Console.WriteLine("other")
    End Select
    不支持 Dim i As Integer = 9
    Select Case i
        Case 5 To 9
            Console.WriteLine("i = 5 to 9")
    End Select
    enum Tricolor { Red, Green, Blue }
    // ...
    Tricolor color = Tricolor.Blue;
    switch (color)
    {
        case Tricolor.Blue:
            Console.WriteLine("Blue");
            break;
        case Tricolor.Green:
            Console.WriteLine("Green");
            break;
        default:
            Console.WriteLine("other color");
            break;
    }
    Enum Tricolor
        Red
        Green
        Blue
    End Enum
    ' ...
    Dim color As Tricolor = Tricolor.Blue
    Select Case color
        Case Tricolor.Blue
            Console.WriteLine("Blue")
        Case Tricolor.Green
            Console.WriteLine("Green")
        Case Else
            Console.WriteLine("other color")
    End Select

    技巧

    1. Imposible Is Nothing

    记得我在调试程序的时候说得最多的一句话就是“不可能啊……”。因为我们在编程的时候总是要假设很多条件的。我们会假设天不会塔下来、出门不会被车撞到、吃饭不会被噎死,否则就没法生活下去了。例如我们会这样写程序:
    if (sex == 1)
    {
        Console.WriteLine(
    "男人");
    }
    else if (sex == 0)
    {
        Console.WriteLine(
    "女人");
    }
    因为我们心想 sex 变量不可能出现别的值。
    不过一旦写了这样的代码,不久之后就一定会后悔的,因为就像温伯格所说的,“所有不可能发生的事情都一定会发生”,所以正确的写法应该是:
    if (sex == 1)
    {
        Console.WriteLine(
    "男人");
    }
    else if (sex == 0)
    {
        Console.WriteLine(
    "女人");
    }
    else
    {
        System.Diagnostics.Debug.Assert(
    false"Should never reach here!");
    }
    或者这样写也不错:
    System.Diagnostics.Debug.Assert((sex == 1 || sex == 0), "wrong sex");
    if (sex == 1)
    {
        Console.WriteLine(
    "男人");
    }
    else
    {
        Console.WriteLine(
    "女人");
    }
    总之只要你写if或switch语句,就要确保它覆盖了变量的所有取值范围。

    2.  避免多层嵌套的if语句

    相信大家都受过一层套着一层又套着一层的代码的折磨,特别是正巧每层代码又很长的时候,那感觉就像在热带雨林里迷了路,转过好几圈却不知道自己身在何处。比较下面两段功能相同的代码。
    可读性不好的代码:
    public string foo(int age)
    {
        
    if (age >= 0 && age <= 150)
        {
            
    if (age >= 0 && age <= 18)
            {
                
    return "青少年";
            }
            
    else if (age > 18 && age <= 60)
            {
                
    return "中年";
            }
            
    else
            {
                
    return "老年";
            }
        }
        
    else
        {
            
    return "无效的年龄";
        }
    }

    可读性好的代码:
    public string foo(int age)
    {
        
    if (age<0 || age > 150)
        {
            
    return "无效的年龄";
        }

        
    if (age >= 0 && age <= 18)
        {
            
    return "青少年";
        }
        
    else if (age > 18 && age <= 60)
        {
            
    return "中年";
        }
        
    else
        {
            
    return "老年";
        }
    }

    是不是感觉一下子清新了好多?而且更重要的是,第二段代码把对正常情况的处理和非正常情况下的处理明显地分成了两部分,使读者更容易集中精力。
  • 相关阅读:
    [转]为什么udp为什么不能发送大于1472字节数据
    曾经的那些入过的坑 内网中部署bcos
    安装FISCO-BCOS的那些坑
    springcloud基础入门
    BCOS常见的问题
    软件测试工程师必须要知道的9点
    十款APP开发框架
    Thinkphp开源框架如何使用?
    软件测试工程师面试必须要注意的7点
    一个APP开发有那么难吗?
  • 原文地址:https://www.cnblogs.com/smallmuda/p/1356819.html
Copyright © 2011-2022 走看看