设为首页 加入收藏

TOP

3.1 比较数据值
2013-10-07 16:06:21 来源: 作者: 【 】 浏览:64
Tags:3.1 比较 数据

第3章 判断和循环

本章要点

如何比较数据值

如何基于比较结果来改变程序的执行序列

如何使用逻辑运算符和表达式

如何处理多选情形

如何在程序中编写并使用循环

3.1  比较数据值

如果不希望作出武断的决定,那么我们需要一种比较机制。这种机制涉及一些新的运算符,即关系运算符。因为计算机中的所有信息最终都表示为数值(第2章中已学习过如何用数字代码来表示字符信息),所以数值比较实际上是所有判断的本质。总共有6个用于比较两个值的基本运算符,如表3-1所示。

表  3-1

小于
<=
小于等于
大于
>=
大于等于
==
等于
!=
不等于


"等于"比较运算符有两个连续的"="号,它与仅由一个"="号组成的赋值运算符不同。以赋值运算符代替"等于"比较运算符是常见的错误,因此务必注意这个潜在的错误根源。

表3-1中的各个运算符都对两个操作数的值进行比较,然后返回一个bool类型值:比较结果为真返回true,为假则返回false。我们看几个简单的比较示例,就能明白这些运算符的工作过程。操作数可以是变量、字面值或表达式。假设已经创建了两个整型变量i和j,二者的值分别是10和-5,那么表达式

  1. > j     i != j     j > -8     i <= j + 15 

都将返回true。

再假设已经定义了下面两个变量:

  1. char first = 'A'last = 'Z'

下面几个比较示例使用了这两个字符变量:

  1. first == 65     first < last     'E' <= first     first != last 

上面4个表达式都涉及ASCII码值的比较。第一个表达式返回true,因为first初始化为'A',而'A'的ASCII码值与十进制数65相等。第二个表达式检查first的值'A'是否小于last的值'Z'。如果在附录B中查看这两个字符的ASCII码,就将注意到大写字母是用65~90的数值升序表示的,即65表示'A',90表示'Z',因此第二个比较表达式同样返回true。第三个表达式返回false,因为'E'大于first的值。最后一个表达式返回true,因为'A'肯定不等于'Z'。

考虑几个稍微复杂些的数值比较示例。下列语句定义了4个变量:

  1. int i = -10, j = 20;  
  2. double x = 1.5, y = -0.25E-10; 

观察下面这些表达式:

  1. -1 < y      j < (10 - i)    2.0*x >= (3 + y) 

可以看出,在比较时可以用结果为数值的表达式作为操作数。如果与第2章的运算符优先表进行核对,就会发现上面的圆括号都不是必需的,但这些圆括号确实有助于使表达式更清楚。第一个表达式为真,因此返回bool值true。变量y的值是-0.000 000 000 025,因此大于-1。第二个比较返回false,因为表达式10-i的值是20,与j相等。第三个表达式返回true,因为表达式3+y略微小于3。

可以使用关系运算符来比较任何基本类型或枚举类型的数值,因此现在所需的就是切实可行的、用比较结果改变程序行为的办法。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.1.3 析构函数与动态内存分配(2.. 下一篇3.1.1 if语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)