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

    选择语句:根据表达式的值,从若干语句中选择一个来执行。

    选择语句包含:if语句和switch语句。

    if语句:根据布尔表达式的值,选择要执行的语句。

    语法:

    第一种:if (布尔表达式) 一条嵌入式语句

    示例:

    static int MaxValue(int valuea, int valueb)
    {
        if (valuea > valueb)
            return valuea;
        return valueb;
    }

    上面的方法,想要表达的意图是,返回两个数中较大的一个。return和valuea组合形成了表达式语句--表达式语句可以作为嵌入式语句,从语法上来看复合if语句的语法。

    第二种:if (布尔表达式) 一条嵌入式语句 else 一条嵌入式语句

    示例:

    static int MaxValue(int valuea, int valueb)
    {
        if (valuea > valueb)
            return valuea;
        else
            return valueb;
    }

    这是一个if语句的第二种形式的运用,因为第一种单使用if的代码阅读起来效果并不好。当不满足条件时,使用else分支能让别人阅读起代码来清晰明了。

    示例:输入学生成绩,使用if...else语句,达到下面目的:0~59 不及格、60~79 良好、80~100优秀。

    private static string PrintScore(int score)
    {
        if (score>=80&&score<=100)
        {
            return "优秀";
        }
        else
        {
            if (score>=60&&score<80)
            {
                return "良好";
            }
            else
            {
                if (score>=0&&score<60)
                {
                    return "不及格";
                }
                else
                {
                    return "异常数据";
                }
            }
        }
    }

    调用这个方法,传入成绩为:40分、60分、80分、101分进行测试:

    var res= PrintScore(80);
    Console.WriteLine(res);

    输出结果:不及格、良好、优秀、异常数据。

    虽然上面的代码完成了题目要求,但是代码却有要优化的地方:第一个else分支后面跟着的其实是一个块语句,而块语句中的大段代码其实只是一个if语句。所以我们可以把{}去掉,将if语句直接写在else后面。这在语法上是没有问题的,所以我们可以把代码简化成:

    private static string PrintScore(int score)
    {
        if (score>=80&&score<=100)
        {
            return "优秀";
        }
        else if (score >= 60 && score < 80)
        {
            return "良好";
        }
        else if (score >= 0 && score < 60)
        {
            return "不及格";
        }
        else
        {
            return "异常数据";
        }
    }

    上面的形式,其实是if..else if形式。我们只不过推演了一下它是怎么来的。

    switch语句:选择一个要执行的语句列表,这个列表具有一个相关的switch标签,这个标签对应switch表达式的值。

    语法:switch (表达式) switch块。

    使用switch来完成,上面if语句完成的输出成绩等级的功能。

    示例:

    static string PrintScoreWithSwitch(int score)
    {
        switch (score/10)
        {
            case 8:
            case 9:
            case 10:
                return "优秀";
            case 7:
            case 6:
                return "良好";
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
                return "不及格";
            default:
                return "输入有误";
        }
    }

    以上代码,也能实现根据成绩输出等级的功能。当然为了让代码能够更加完善,我们还需要加上一个数值范围的判断。

    static string PrintScoreWithSwitch(int score)
    {
        if (score >= 0 && score <= 100)
        {
            switch (score / 10)
            {
                case 8:
                case 9:
                case 10:
                    return "优秀";
                case 7:
                case 6:
                    return "良好";
                default:
                    return "不及格";
            }
        }
        else
        {
            return "异常数据";
        }
    }

    关于switch语句,我们可以发现某些情况下,他完全能够替代if语句。

    使用switch语句时要注意在每一个case 标签后都要设置一个break等关键字,来防止贯穿。如果不进行这样的操作,C#是不允许我们的代码编译通过的:

    switch语句匹配的表达式的值如果是枚举类型的时候,通过VS的智能填充我们可以快速实现switch骨架的编写:

    上面的操作步骤是,先键入 switch 然后按两下TAB键;接下来输入 待匹配的值 case_value;最后按下回车键就可以了。

    以上便是对选择语句的回顾总结,记录下来以便以后查阅。

  • 相关阅读:
    最详尽的IntelliJ IDEA项目web项目搭建!!!!!!
    Unable to locate JAR/zip in file system as specified by the driver definition: ojdbc14.jar
    Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
    MySQL闪退
    mysql:unknown variable 'default -collation=utf8_general_ci'
    更改文本的编码jsp.xml.java
    save is not valid without active transaction
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'deptDao_a' defined in class path resource [beansAndHibernate.xml]: Cannot resolve reference to bean 'sessionFact
    java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.LocalSessionFactoryBean
    linux常用Java程序员使用命令(二)
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/13593923.html
Copyright © 2011-2022 走看看