zoukankan      html  css  js  c++  java
  • (原创)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()从字符串输入中得到一个整数。

  • 相关阅读:
    oracle补丁升级
    Vmware虚拟机设置静态IP地址
    VMware 虚拟机安装
    中国城市json
    安装vue
    中国省份城市数据
    ajax表单提交post(错误400) 序列化表单(post表单转换json(序列化))
    自动搭建ssm项目
    小米root
    程序员职业规划(一篇来自"阿里Java工程师"对工作3年左右程序员的职业建议和应该掌握的职业技能)
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4893083.html
Copyright © 2011-2022 走看看