前面我们介绍了简单的条件逻辑运算符,现在我们来看一下另外一种条件判断 ———— 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");
}
}
}
运算结果:
但如果我输入的数不是一个 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");
else
Console.WriteLine("The number isn't between 0 and 5");
}
}
}
再次运行这个程序,现在输入一个不在 0 到 5之间的数:
上面的示例表现了两个分支的情况,但在某些情况下,我们需要的不止两个分支,需要三个,甚至更多:
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.");
}
}
}
运行结果:
对于上面的示例,我们还可以通过 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;
}
}
}
}
运算结果:
小贴士:
在 switch 语句中,没个分支中的 break 是必须的,不然会挨个执行所有分支,有兴趣的可以自己尝试一下,删除 break,然后执行程序。关于 break 的更多内容,我们会在后面讲循环时讲到。