VC#2005快速入门之使用布尔操作符

2016-02-19 15:22 9 1 收藏

有了下面这个VC#2005快速入门之使用布尔操作符教程,不懂VC#2005快速入门之使用布尔操作符的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - 编程语言 】

  布尔操作符(Boolean operator)是求值结果要么为true,要么为false的一种操作符。C#提供了几个非常有用的布尔操作符,其中最简单的是NOT(求反)操作符,它使用感叹号(!)来表示。!操作符求一个布尔值的反值。在上例中,假如变量areYouReady的值为true,那么表达式!areYouReady的求值结果就是false。

  理解相等和关系操作符

  两个更常用的布尔操作符是相等(==)和不等(!=)操作符。利用这两个二元操作符,可以判断一个值是否与相同类型的另一个值相等。表1展示了这些操作符是如何工作的,其中以一个名为age的int变量为例。

  表1 布尔操作符

  操 作 符含 义 示 例结果(假定age = 42) == 等于 age == 100false!=不等于 age != 0 true

  与上述两个操作符密切相关的是关系操作符(relational operator)。利用这些操作符,可以判断一个值是否小于或大于同类型的另一个值。表2展示了如何使用这些操作符。

  表2 关系操作符

  操 作 符含 义示 例结果(假定age = 42) &< 小于age &< 21false&<= 小于或等于 age &<= 18false 大于age 16true=大于或等于age = 30true

  注意 不要混淆相等操作符(==)与赋值操作符(=)。像x==y这样的代码会比较x与y,如果两个值相同,就会返回true。相反,像x=y这样的代码会将y的值赋给x。

  理解条件逻辑操作符

  C#还提供了另外两个布尔操作符:逻辑AND(逻辑与)操作符,它使用&&来表示;以及逻辑OR(逻辑或)操作符,它使用||来表示。这两个操作符统称为条件逻辑操作符(conditional logical operator)。它们的作用是合并不同的布尔表达式,以构成一个更大的表达式。这两个二元操作符与相等及关系操作符的相似之处在于,它们的结果也是true或false。不同之处在于,它们操作的值(操作数)本身就必须是true或false。

  只有作为操作数的两个布尔表达式都为true的前提下,&&操作符的求值结果才为true。例如,只有在percent的值大于或等于零,而且percent的值小于或等于100的前提下,以下语句才会将true值赋给validPercentage:

  bool validPercentage;

  validPercentage = (percent = 0) && (percent &<= 100);

  提示 新手常犯的一个错误是在合并两个测试的时候,只对percent变量命名一次,就像下面这样:

  percent = 0 && &<= 100 // 这个语句不能编译

  使用圆括号有助于避免这种类型的错误,同时也有助于澄清表达式。例如,可以对比一下以下两个表达式:

  validPercentage = percent = 0 && percent &<= 100

  validPercentage = (percent = 0) && (percent &<= 100)

  两个表达式返回的是同一个值,因为操作符&&的优先级低于=和&<=。然而,第二个表达式采取更清晰易懂的方式表明了它的目的。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  两个操作符任何一个为true,操作符||的求值结果都为true。使用操作符||,我们可以判断两个条件中是否有任何一个成立。如果percent的值小于零,或者percent的值大于100,以下语句会将值true赋给invalidPercentage:

  bool invalidPercentage;

  invalidPercentage = (percent &< 0) || (percent 100);

  

  短路求值

  操作符&&和||都具备一项名为短路求值(short circuiting)的特性。有时,根本没有必要将两个操作数都求值出来。例如,假定操作符&&的左操作数求值为false,那么整个表达式的结果肯定是false,不管右操作数的值是什么。类似地,如果操作符||的左操作数求值为true,那么整个表达式的结果肯定是true。在这些情况下,操作符&&和||将绕过对右侧的布尔表达式的求值。下面是一些例子:

  (percent = 0) && (percent &<= 100)

  在这个表达式中,假如percent的值小于零,那么操作符&&左侧的布尔表达式会求值为false。该值意味着整个表达式的结果肯定为false,无论右侧的表达式是什么。所以,不会对右侧的表达式进行求值。

  (percent &< 0) || (percent 100)

  在这个表达式中,如果percent的值小于零,操作符||左侧的布尔表达式会求值为true。该值意味着整个表达式的结果肯定为true。所以,不会对右侧的表达式进行求值。

  如果能小心地设计表达式来使用条件逻辑操作符,就可以避免通过不必要的工作来提升代码的性能。将计算容易、简单的布尔表达式放到条件逻辑操作符的左边,将较复杂的表达式放到右边。在许多情况下,程序并不需要求值更复杂的表达式。

  

  操作符优先级和结合性总结

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  表3总结了迄今为止学过的所有操作符的优先级和结合性。相同类别的操作符具有相同的优先级。一个更高类别中的操作符优先于较低类别中的操作符。

  表3 操作符小结

  类 别操 作 符描 述结 合 性主要(Primary)()++--覆盖优先级后递增后递减左一元(Unary)!+-++--逻辑NOT加减前递增前递减左乘(Multiplicative)*/%乘除求余左加(Additive)+-加减左关系(Relational)&<&<==小于小于或等于大于大于或等于左相等(Equality)==!=等于不等于左条件AND(Conditional AND)&&逻辑AND左条件OR(Conditional OR)||逻辑OR左赋值(Assignment)=右

来源:http://www.tulaoshi.com/n/20160219/1609517.html

延伸阅读
标签: PHP
一、简介 在 PHP 中实现强制 对象 类型有时可能非常重要。如果缺少了它,或是因为缺乏这方面的知识——基于不正确的编程假设,或者仅仅是由于懒惰,那么你会在特定的Web应用程序中看到你所不希望的结果。特别是当用PHP 4进行编程时,使用"is_a()"函数(尽管还有其它方法)来验证你所使用的对象的类型是非常容易的事情。毫...
标签: PHP
三、 使用"instanceof"操作符 如你所见,"instanceof"操作符的使用非常简单,它用两个参数来完成其功能。第一个参数是你想要检查的 对象 ,第二个参数是类名(事实上是一个接口名),用于确定是否这个对象是相应类的一个实例。当然,我故意使用了上面的术语,这样你就可以看到这个操作符的使用是多么直观。它的基本语法如...
equals方法是Object类的一个方法,所有继承自Object类的类都会集成此方法,并且可以重载这个方法来实现各自的比较操作,而且jdk也正是推荐这种做法。所以开发人员尽可以在自己的类中实现自己的equals方法来完成自己特定的比较功能,所以各个类的equals方法与= =之间并没有绝对的关系,这要根据各自类中自己的实现情况来看。也就是说可能会...
equals与"=="操作符的比较 -------------------------------------------------------------------------------- equals方法是Object类的一个方法,所有继续自Object类的类都会集成此方法,并且可以重载这个方法来实现各自的比较操作,而且jdk也正是推荐这种做法。所以开发人员尽可以在自己的类中实现自己的...
为什么operator=操作符返回引用 赵湘宁 问题:        MSDN文档中解释到:operator=操作符缺省情况下返回引用—— TYPE& TYPE::operator=(const TYPE&) 为什么呢?我对此的理解...

经验教程

473

收藏

61
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部