(原创)c#学习笔记04--流程控制01--布尔逻辑01--布尔赋值运算符

第四章 流程控制

  本章内容:
●  布尔逻辑的含义及其用法
●  如何控制代码的分支
●  如何编写循环代码

  本章介绍控制程序流的两种方法。程序流程就是C#代码的执行顺序。这两种方法就是分支和循环。分支是有条件地执行代码。条件取决于计算的结果,例如,“只有myVal小于10,才执行这行代码”。 循环重复执行相同的语句(重复执行一定的次数,或者在满足测试条件后停止执行)。

  这两种方法都要用到布尔逻辑。

4.1  布尔逻辑

  bool类型可以有两个值:true或false。这种类型常常用于记录某些操作的结果,以便操作这些结果。bool类型可用于存储比较结果。

  布尔比较需要使用布尔比较运算符(也称为关系运算符),如表4-1所示。这里var1都是bool类型的变量,var2和var3则可以是不同类型。

  note: 一个常见的代码错误是,无意间假定由于val1 < val2是false,所以val1 > val2为true。如果val1 == val2,则这两个语句都是false。

  在处理布尔值时,还有其他一些布尔运算符,如表4-2所示。

  

  &和 | 运算符也有两个类似的运算符,称为条件布尔运算符(见表4-3)。

  这些运算符的结果与&和 | 完全相同,但得到结果的方式有一个重要区别:其性能比较好。两者都是检查第一个操作数的值(表4-3中的var2),再根据该操作数的值进行操作,可能根本就不处理第二个操作数(表4-3中的var3)。

  如果&&运算符的第一个操作数是false,就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么,其结果都是false。同样,如果第一个操作数是true,|| 运算符就返回true后,无需考虑第二个操作数的值。但上面的&和 | 运算符却不是这样。它们总是要计算两个操作数

  因为操作数的计算是有条件的,如果使用&&和 || 运算符来代替&和 |,性能会有一定提高。在大量使用这些运算符的应用程序中这表现得尤为明显。作为一个舰则,尽可能使用&&和 || 运算符。

  这些运算符有时用于比较复杂的情形,例如,只有第一个操作数包含某个值时,才计算第二个操作数:

    var1 = (var2 != 0) && (var3 / var2 > 2);

  如果var2是0,则var3除以var2就会导致“除0错误”,或者把var1定义为无穷大(对于某些类型如float来说,可能出现后一种情形,也是可以检测到的)。

4.1.1  布尔赋值运算符

  使用布尔赋值运算符可以把布尔比校与赋值组合起来,其方式与第3章中的数学赋值运算符(+=,*=等)相同。布尔值如表4-4所示。

  这些运算符处理布尔值和数值的方式与&、|和^相同。

  note: &=和!=赋值运算符并不使用&&和 || 条件布尔运算符,即无论赋值运算符左边的值是什么,都处理所有的操作。

  在下面的示例中,用户键入一个整数,然后代码使用该整数执行各种布尔运算。代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ch04Ex01
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter an integer:");
            int myInt = Convert.ToInt32(Console.ReadLine());
            bool isLessThan10 = myInt < 10;
            bool isBetween0And5 = (0 <= myInt) && (myInt <= 5);
            Console.WriteLine("Inteeger less than 10? {0}", isLessThan10);
            Console.WriteLine("Integer between 0 and 5? {0}", isBetween0And5);
            Console.WriteLine("Exactly one of the above is true? {0}", isLessThan10 ^ isBetween0And5);
            Console.ReadKey();
        }
    }
}

  运行结果如下:

  使用Convert.ToInt32()从字符串输入中得到一个整数。

原文地址:https://www.cnblogs.com/wodehao0808/p/4893083.html