|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。疾速进门 布尔操纵符(Booleanoperator)是求值了局要末为true,要末为false的一种操纵符。C#供应了几个十分有效的布尔操纵符,个中最复杂的是NOT(求反)操纵符,它利用叹息号(!)来暗示。!操纵符求一个布尔值的反值。在上例中,假设变量areYouReady的值为true,那末表达式!areYouReady的求值了局就是false。
了解相称和干系操纵符
两个更经常使用的布尔操纵符是相称(==)和不等(!=)操纵符。使用这两个二元操纵符,能够判别一个值是不是与不异范例的另外一个值相称。表1展现了这些操纵符是怎样事情的,个中以一个名为age的int变量为例。
表1布尔操纵符
操作符含义示例了局(假定age=42)==即是age==100false!=不即是age!=0true
与上述两个操纵符亲切相干的是干系操纵符(relationaloperator)。使用这些操纵符,能够判别一个值是不是小于或年夜于同范例的另外一个值。表2展现了怎样利用这些操纵符。
表2干系操纵符
操作符含义示例了局(假定age=42)&<小于age&<21false&<=小于或即是age&<=18false>年夜于age>16true>=年夜于或即是age>=30true
注重不要搅浑相称操纵符(==)与赋值操纵符(=)。像x==y如许的代码会对照x与y,假如两个值不异,就会前往true。相反,像x=y如许的代码会将y的值赋给x。
了解前提逻辑操纵符
C#还供应了别的两个布尔操纵符:逻辑AND(逻辑与)操纵符,它利用&&来暗示;和逻辑OR(逻辑或)操纵符,它利用||来暗示。这两个操纵符统称为前提逻辑操纵符(conditionallogicaloperator)。它们的感化是兼并分歧的布尔表达式,以组成一个更年夜的表达式。这两个二元操纵符与相称及干系操纵符的类似的地方在于,它们的了局也是true或false。分歧的地方在于,它们操纵的值(操纵数)自己就必需是true或false。
只要作为操纵数的两个布尔表达式都为true的条件下,&&操纵符的求值了局才为true。比方,只要在percent的值年夜于或即是零,并且percent的值小于或即是100的条件下,以下语句才会将true值赋给validPercentage:
boolvalidPercentage;
validPercentage=(percent>=0)&&(percent&<=100);
提醒老手常犯的一个毛病是在兼并两个测试的时分,只对percent变量定名一次,就像上面如许:
percent>=0&&&<=100//这个语句不克不及编译
利用圆括号有助于制止这类范例的毛病,同时也有助于廓清表达式。比方,能够对照一下以下两个表达式:
validPercentage=percent>=0&&percent&<=100
validPercentage=(percent>=0)&&(percent&<=100)
两个表达式前往的是统一个值,由于操纵符&&的优先级低于>=和&<=。但是,第二个表达式接纳更明晰易懂的体例标明了它的目标。
两个操纵符任何一个为true,操纵符||的求值了局都为true。利用操纵符||,我们能够判别两个前提中是不是有任何一个建立。假如percent的值小于零,大概percent的值年夜于100,以下语句会将值true赋给invalidPercentage:
boolinvalidPercentage;
invalidPercentage=(percent&<0)||(percent>100);
短路求值
操纵符&&和||都具有一项名为短路求值(shortcircuiting)的特征。偶然,基本没有需要将两个操纵数都求值出来。比方,假定操纵符&&的左操纵数求值为false,那末全部表达式的了局一定是false,不论右操纵数的值是甚么。相似地,假如操纵符||的左操纵数求值为true,那末全部表达式的了局一定是true。在这些情形下,操纵符&&和||将绕过对右边的布尔表达式的求值。上面是一些例子:
(percent>=0)&&(percent&<=100)
在这个表达式中,假设percent的值小于零,那末操纵符&&左边的布尔表达式会求值为false。该值意味着全部表达式的了局一定为false,不管右边的表达式是甚么。以是,不会对右边的表达式举行求值。
(percent&<0)||(percent>100)
在这个表达式中,假如percent的值小于零,操纵符||左边的布尔表达式会求值为true。该值意味着全部表达式的了局一定为true。以是,不会对右边的表达式举行求值。
假如能当心地计划表达式来利用前提逻辑操纵符,就能够制止经由过程不用要的事情来提拔代码的功能。将盘算简单、复杂的布尔表达式放到前提逻辑操纵符的右边,将较庞大的表达式放到右侧。在很多情形下,程序其实不必要求值更庞大的表达式。
操纵符优先级和分离性总结
表3总结了迄今为止学过的一切操纵符的优先级和分离性。不异种别的操纵符具有不异的优先级。一个更高种别中的操纵符优先于较低种别中的操纵符。
表3操纵符小结
次要(Primary)
()
++
--
掩盖优先级
后递增
后递加
左
一元(Unary)
!
+
-
++
--
逻辑NOT
加
减
前递增
前递加
左
乘(Multiplicative)
*
/
%
乘
除
求余
左
加(Additive)
+
-
加
减
左
干系(Relational)
&<
&<=
>
>=
小于
小于或即是
年夜于
年夜于或即是
左
相称(Equality)
==
!=
即是
不即是
左
前提AND(ConditionalAND)
&&
逻辑AND
左
前提OR(ConditionalOR)
||
逻辑OR
左
赋值(Assignment)
=
右据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。 |
|