Java开发笔记(十三)利用关系运算符比较大小
前面在《Java开发笔记(九)赋值运算符及其演化》中提到,Java编程中的等号“=”表示赋值操作,并非数学上的等式涵义。Java通过等式符号“==”表示左右两边相等,对应数学的等号“=”;通过不等符号“!=”表示左右两边不等,对应数学的不等号“≠”。
可是一个等式真的就一定成立吗?譬如半斤八两这个成语,用Java等式改写的话变为“半斤==八两”。话说当年秦始皇统一中国,不但推行“书同文、车同轨”,而且也制定了重量单位的换算标准,当时规定十六两为一斤,从此沿用了两千多年。直到公元1959年,为了与国际接轨,中国发布了《关于统一计量制度的命令》,正式将称重计量定做十两为一斤。那么在1959年之前,“半斤==八两”这个等式是成立的;而在1959年之后,“半斤==八两”不成立。
为了区分某个式子成立和不成立的情况,Java把“==”看作是一种特殊的运算符号。凡是运算符都会得到运算结果,等式符号“==”也不例外,它的运算结果为布尔类型,值为true时表示这个等式成立,值为false时表示这个等式不成立。不等符号“!=”的运算结果与之类似,结果为true时表示不等式成立,为false时表示不等式不成立。下面是等式符号“==”和不等符号“!=”的运算代码例子,可以体会一下七上八下的返回结果:
int seven = 7; int eight = 8; // 数学的等号“=”对应Java的“==”符号 boolean equal = seven==eight; // 结果为真表示等式成立,为假表示等式不成立 System.out.println("equal="+equal); // 数学的不等号“≠”对应Java的“!=”符号 boolean not_equal = seven!=eight; // 结果为真表示不等式成立,为假表示不等式不成立 System.out.println("not_equal="+not_equal);
除了等号和不等号,数学上还有其它比较数字大小的符号,包括大于号“>”、小于号“<”、大等号“≥”、小等号“≤”等等,Java也提供了对应的判断符号。如运算符“>”表示大于,运算符“<”表示小于,运算符“>=”表示大等于,运算符“<=”表示小等于。这些大小判断符号同样拥有布尔类型的运算结果,因此通过甄别结果值为true还是false,即可判定大小比较的式子是否成立。下面是如何使用大于小于符号的演示代码:
// 数学的大于号“>”对应Java的“>”符号 boolean greater = seven>eight; System.out.println("greater="+greater); // 数学的小于号“<”对应Java的“<”符号 boolean less = seven<eight; System.out.println("less="+less); // 数学的大等号“≥”对应Java的“>=”符号 boolean greater_and_equal = seven>=eight; System.out.println("greater_and_equal="+greater_and_equal); // 数学的小等号“≤”对应Java的“<=”符号 boolean less_and_equal = seven<=eight; System.out.println("less_and_equal="+less_and_equal);
以上判断相等关系的两种运算符,加上判断大小关系的四种运算符,一共六种统称为“关系运算符”。