首页 > 编程笔记 > C#笔记 阅读:14

C#逻辑运算符的用法(附带实例)

假定某面包店,在每周二的下午 7 点至 8 点和每周六的下午 5 点至 6 点,对生日蛋糕商品进行折扣让利活动,那么想参加折扣活动的顾客就要在时间上满足这样的条件(周二且 7:00 PM~8:00 PM)或者(周六且 5:00 PM~6:00 PM),这里就用到了逻辑关系,在 C# 中也提供了这样的逻辑运算符来进行逻辑运算。

逻辑运算符是对真和假这两种布尔值进行运算,运算后的结果仍是一个布尔值。在 C# 中,逻辑运算符主要包括&(&&)(逻辑与)、|(||)(逻辑或)、!(逻辑非)。

在逻辑运算符中,除了“!”是单目运算符,其他都是双目运算符。下表列出了逻辑运算符的用法和说明。

表 1 逻辑运算符的用法和说明
运算符 含义 用法 结合方向
&&、& 逻辑与 op1&&op2 从左到右
||、| 逻辑或 op1||op2 从左到右
! 逻辑非 !op 从右到左

使用逻辑运算符进行逻辑运算时,其运算结果如下表所示:

表 2 使用逻辑运算符进行逻辑运算的结果
表达式 1 表达式 2 表达式 1&& 表达式 2 表达式 1|| 表达式 2 !表达式 1
true true true true false
true false false true false
false false false false true
false true false true true

逻辑运算符“&&”与“&”都表示“逻辑与”,那么它们之间的区别在哪里呢?

从表 2 可以看出,当两个表达式都为 true 时,逻辑与的结果才会是 true。使用“&”会判断两个表达式;而“&&”则是针对 bool 类型的数据进行判断,当第一个表达式为 false 时,则不去判断第二个表达式,直接输出结果,从而节省计算机判断的次数。通常将这种在逻辑表达式中从左端的表达式可推断出整个表达式的值称为“短路”,而那些始终执行逻辑运算符两边的表达式称为“非短路”。

“&&”属于“短路”运算符,而“&”则属于“非短路”运算符。“||”与“|”的区别跟“&&”与“&”的区别类似。

【实例】创建一个控制台应用程序,使用代码实现前面描述的面包店打折活动的场景,代码如下:
static void Main(string[] args)
{
    Console.WriteLine("面包店正在打折,活动进行中.....\n"); // 输出提示信息
    Console.Write("请输入星期:");
    string strWeek = Console.ReadLine(); // 记录用户输入的星期
    Console.Write("请输入时间:");
    int intTime = Convert.ToInt32(Console.ReadLine()); // 记录用户输入的事件

    // 判断是否满足活动参与条件(使用了if条件语句)
    if((strWeek == "星期二" && (intTime >= 19 && intTime <= 20)) || (strWeek == "星期六" && (intTime >= 17 && intTime <= 18)))
    {
        Console.WriteLine("恭喜您,您获得了折扣活动参与资格,请尽情选购吧!"); // 输出提示信息
    }
    else
    {
        Console.WriteLine("对不起,您来晚了一步,期待下次活动……"); // 输出提示信息
    }
    Console.ReadLine();
}
程序运行结果为:

请输入星期:星期二
请输入时间:20
恭喜您,您获得了折扣活动参与资格,请尽情选购吧!

程序中,第 9 行和第 13 行代码使用了 if else 条件判断语句,主要用来判断是否满足某种条件。第 9 行代码中对条件进行判断时,使用了逻辑运算符&&、|| 和关系运算符 ==、>=、<=。

相关文章