C# 入门之逻辑判断(下)

前面我们介绍了简单的条件逻辑运算符,现在我们来看一下另外一种条件判断 ———— if.

在前面的判断一个数是否在 0 到 5 之间,我们通过 “between0And5” 的输出是否为 TRUE 来判断这个数是否在 0 到 5 之间。我们可以使用 if 改写这个程序,让程序之间输出这个数是否在 0 到 5 之间:

using System;

namespace Operator3
{
    class Program
    {
        static void Main(string[] args)
        {
            int myNum;
            Console.WriteLine("Please type a number:");
            myNum = Convert.ToInt32(Console.ReadLine());
            if ((0 <= myNum) && (myNum <= 5))
                    Console.WriteLine("The number is between 0 and 5");
        }
    }
}

运算结果:
https://ithelp.ithome.com.tw/upload/images/20210903/200994948hiYtI2xX3.png

但如果我输入的数不是一个 0 到 5 之间的数,会怎么样:
https://ithelp.ithome.com.tw/upload/images/20210903/20099494ELBLucRqCw.png

没有任何返回结果,为了防止出现这种情况,我们还需要加一个分支:

using System;

namespace Operator3
{
    class Program
    {
        static void Main(string[] args)
        {
            int myNum;
            Console.WriteLine("Please type a number:");
            myNum = Convert.ToInt32(Console.ReadLine());
            if ((0 <= myNum) && (myNum <= 5))
                Console.WriteLine("The number is between 0 and 5");
            else
                Console.WriteLine("The number isn't between 0 and 5");
        }
    }
}

再次运行这个程序,现在输入一个不在 0 到 5之间的数:
https://ithelp.ithome.com.tw/upload/images/20210903/20099494GU6g7ihgy4.png

上面的示例表现了两个分支的情况,但在某些情况下,我们需要的不止两个分支,需要三个,甚至更多:

using System;

namespace Operator3
{
    class Program
    {
        static void Main(string[] args)
        {
            int myNum;
            Console.WriteLine("1. This is Active Directory.");
            Console.WriteLine("2. This is Hyper-v.");
            Console.WriteLine("3. This is DHCP.");
            Console.WriteLine("4. This is DNS.");
            Console.WriteLine( "");
            Console.WriteLine("Select a service you want to maintenance");
            myNum = Convert.ToInt32(Console.ReadLine());
            if (myNum == 1)
                Console.WriteLine("The service you want to maintenance is Active Directory.");
            else if (myNum == 2)
                Console.WriteLine("The service you want to maintenance is Hyper-v.");
            else if (myNum == 3)
                Console.WriteLine("The service you want to maintenance is DHCP.");
            else if (myNum == 4)
                Console.WriteLine("The service you want to maintenance is DNS.");
            else
                Console.WriteLine("input error.");
        }
    }
}

运行结果:
https://ithelp.ithome.com.tw/upload/images/20210903/20099494T5zMCg8c2G.png

对于上面的示例,我们还可以通过 switch 的方式来写:

using System;

namespace Operator3
{
    class Program
    {
        static void Main(string[] args)
        {
            int myNum;
            Console.WriteLine("1. This is Active Directory.");
            Console.WriteLine("2. This is Hyper-v.");
            Console.WriteLine("3. This is DHCP.");
            Console.WriteLine("4. This is DNS.");
            Console.WriteLine( "");
            Console.WriteLine("Select a service you want to maintenance");
            myNum = Convert.ToInt32(Console.ReadLine());
            switch ( myNum )
            {
                case 1:
                    Console.WriteLine("The service you want to maintenance is Active Directory.");
                    break;
                case 2:
                    Console.WriteLine("The service you want to maintenance is Hyper-v.");
                    break;
                case 3:
                    Console.WriteLine("The service you want to maintenance is DHCP.");
                    break;
                case 4:
                    Console.WriteLine("The service you want to maintenance is DNS.");
                    break;
                default:
                    Console.WriteLine("input error.");
                    break;
            }
        }
    }
}

运算结果:
https://ithelp.ithome.com.tw/upload/images/20210903/20099494rfykGDKk9L.png

小贴士:
在 switch 语句中,没个分支中的 break 是必须的,不然会挨个执行所有分支,有兴趣的可以自己尝试一下,删除 break,然后执行程序。关于 break 的更多内容,我们会在后面讲循环时讲到。


<<:  [FGL] 可连结资料库的种类与连线方法

>>:  Day 05 CSS <基础选择器>

Day 30 - 後记

经过了一个月的尝试,我们大致上已经掌握了能够自己实现非常基础的 Ruby VM 的能力。虽然在铁人赛...

夜间模式真的对眼睛比较好吗? 详细整理(下)

5.亮度 常见使用夜间模式的一个原因,也不是因为健康与否,只是因为觉得白底有点太亮了 确实亮度也一直...

TP-LINK ARCHER C60及TL-WR841N有线接WAN的AP模式和有线桥接差在那?

TP-LINK ARCHER C60及TL-WR841N有线接WAN的AP模式和有线桥接差在那? 主...

DAY18 - 踩坑纪录 : 填了坑又有新的坑

前言 铁人赛进入第十八天,今天原本是要开始讲网页前端的部分 没想到碰到自己挖的坑...所以这篇变成踩...

[Day24] CH11:刘姥姥逛物件导向的世界——抽象、介面

今天要来介绍这个主题最後一个单元了,废话不多说就直接进入正题吧! 抽象(Abstract)类别与方法...