您所在的位置: 首页>>读书频道>>设计开发>>.Net系列>>

3.5 布尔表达式

http://book.51cto.com  2008-07-19 11:51  (美)米凯利斯(Michaelis, M.)著/周靖译  人民邮电出版社  我要评论(0)
  • 摘要:《C#本质论》第3章运算符和控制流,这一章将讲述运算符和控制流语句。利用运算符所提供的特定语法,可以针对计算中涉及的操作数执行各种不同的计算或操作,本小节为大家介绍布尔表达式。
  • 标签:C#  本质论  代码  运算符  控制流  C#本质论

3.5 布尔表达式

if语句中包含在圆括号内的部分是布尔表达式(Boolean expression),有时也把它称为一个条件(conditional)。在代码清单3-28中,我们突出显示了布尔表达式。

代码清单3-28 布尔表达式

if (input < 9)
{
// Input is less than 9.
System.Console.WriteLine(
"Tic-tac-toe has more than {0}" +
" maximum turns.", input);
}
// ...

布尔表达式在许多控制流语句中得到了运用,其关键特征在于总是求值为true或false。input<9要想成为一个布尔表达式,它必须返回一个bool值。例如,编译器不允许x=42,因为它的作用是对x进行赋值,并返回新值,而不是检查x的值是否等于42。

语言对比:C++ —— 错误地使用=来代替==

在C#中,布尔表达式的一个关键改进就是消除了C/C++历史上的一个常见的编码错误。在C++中,代码清单3-29是不会出错的。

代码清单3-29 C++允许将赋值作为布尔表达式

if(input=9)   // COMPILE ERROR: Allowed in C++, not in C#.
System.Console.WriteLine(
"Correct, tic-tac-toe has a maximum of 9 turns.");


输出3-14展示了代码清单3-24的结果。

输出3-14

Enter the radius of the circle: 3
The area of the circle is: 28.26

虽然上述代码表面上会检查input是否等于9,但正如第1章讲过的那样,=代表的是赋值运算符,而不是检查相等性的运算符。从赋值运算符返回的是赋给变量的值,本例中就是9。然而,作为一个int,9无法被判定为一个布尔表达式,所以是C#编译器不允许的。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
让你的代码“炫”起来——WPF开发教程
C#实用基础教程
C#技术开发指南
深入Vista应用程序开发
Ruby on Rails 社区网站开发
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有