美文网首页C#语言入门
游戏之路语言篇之分支语句--004

游戏之路语言篇之分支语句--004

作者: HeavenOrSky | 来源:发表于2019-03-29 15:23 被阅读0次

    小奇:早啊!老酷!你过来,我这边有个疑问。
    老酷:这么早就开始写代码了?
    小奇:我想让计算机早点帮我做一点事儿啊!
    老酷:会偷懒,这才是程序员。
    小奇:我学习了if分支语句 但是为不知道什么时候使用if....else 什么时候使用 if ...else if 什么时候使用if....else if else 什么时候使用if...else if ...else if ... 还有 if ..... if... if.. 这种并列的 分支
    老酷:你说的前面的四种有一个共同点,就是只能执行其中之一 也就是说执行了if 那么 else 或者 else if 就不在执行。但是对于 最后一个情况 所有的分支语句都会去做一次判断 只要条件满足 所有的if都有可能执行。所以在使用的时候如果只是执行多种状态其中之一,那么就选择前面的四种情况之一。如果多种状态都有可能执行,那么就使用最后一种情况。
    小奇:恩。想输入一个(1-4)的整数 输入1打印“第一季度”, 输入2打印“第二季度”, 输入3打印“第三季度”, 输入4打印“第四季度”

            static void Main(string[] args)
            {
                Console.WriteLine("输入季度1-4");
                int ret = int.Parse( Console.ReadLine());
                if (ret == 1)
                {
                    Console.WriteLine("第一季度");
                }else if (ret == 2)
                {
                    Console.WriteLine("第二季度");
                }else if (ret == 3)
                {
                    Console.WriteLine("第三季度");
                }
                else
                {
                    Console.WriteLine("第四季度");
                }
            }
    

    老酷:这种写法是不严谨的,用户万一输错了呢?
    小奇:对输入的数字提前做一次校验

            static void Main(string[] args)
            {
                Console.WriteLine("输入季度1-4");
                int ret = int.Parse( Console.ReadLine());
                if (ret<0 || ret>4)
                {
                    Console.WriteLine("输入有误");
                }
                else
                {
                    if (ret == 1)
                    {
                        Console.WriteLine("第一季度");
                    }
                    else if (ret == 2)
                    {
                        Console.WriteLine("第二季度");
                    }
                    else if (ret == 3)
                    {
                        Console.WriteLine("第三季度");
                    }
                    else
                    {
                        Console.WriteLine("第四季度");
                    }
                }
            }
    

    老酷:可以,那么你能写一个最后一种情况的例子么?
    小奇:判断一个数如果能被2整除就输出"该数是偶数" 如果能被5整除就输出“该数是5的倍数”
    以为10满足这两个条件

            static void Main(string[] args)
            {
                Console.WriteLine("输入一个数");
                int num = int.Parse(Console.ReadLine());
    
                if (num%2 == 0)
                {
                    Console.WriteLine("{0}是偶数",num);
                }
                if (num%5==0)
                {
                    Console.WriteLine("{0}是5的倍数",num);
                }
            }
    

    运行结果:


    三次运行结果

    老酷:很好!你已经掌握if分支语句,但是你有没有注意到在写有关季度判断程序的时候,如果我们输入的是1则要最少判断两次,如果输入的是4则最少判断5次。假设我们判断的有n多种 每种结果都不同,那么if分支我们就判断的次数就会剧增。
    小奇:也是。那么怎么解决?(求知若渴的看着老酷)
    老酷:我们可以使用 switch语句啊。
    小奇:switch 汉语就是 开关。听起来就比较简单
    老酷:你看我给你修改的代码:

            static void Main(string[] args)
            {
                Console.WriteLine("选择季度:(1-4)");
                int num = int.Parse(Console.ReadLine());
                switch (num)
                {
                    case 1:
                        Console.WriteLine("第一季度");
                        break;
                    case 2:
                        Console.WriteLine("第二季度");
                        break;
                    case 3:
                        Console.WriteLine("第三季度");
                        break;
                    case 4:
                        Console.WriteLine("第四季度");
                        break;
                    default:
                        Console.WriteLine("输入有误");
                        break;
                }
    

    这种写法每次只需要判断一次。switch后面参数是一个变量,变量和下面的额case 常量匹配,如果变量是4,则4直接和case 4匹配 ,输出case 4 中的代码。匹配不成功,则执行default中的语句。
    小奇:switch确实比if简单多了。那我是不是就可以经常使用switch,少用if了?
    老酷:还是要看具体情况的,switch可以实现的,if都可以,if能实现的switch实现起来未必方便。自己慢慢悟吧!
    小奇:你忙吧!我去悟!!

    相关文章

      网友评论

        本文标题:游戏之路语言篇之分支语句--004

        本文链接:https://www.haomeiwen.com/subject/ykykbqtx.html