比大小
入门。
程序中一般可以使用>
或<
来比较两个数的大小。而并不是每个语言都支持直接比较两个以上的数。比如 Python 中a > b > c
就是可以的,它相当于a > b and b > c
>>> a, b, c = 3, 2, 1
>>> a > b > c
True
而 Java 中是不允许的:
jshell> int a = 3, b = 2, c = 1
a ==> 3
b ==> 2
c ==> 1
jshell> a > b > c
| Error:
| bad operand types for binary operator '>'
| first type: boolean
| second type: int
| a > b > c
| ^-------^
放弃?
报错总比给出错误答案要好。C++给出的是就是 False
int a = 3, b = 2, c = 1;
cout << (a > b > c ? "True" : "False") << endl;
// => False
进阶!
显然 C++并不是像人类(还有 Python)一样思考的。它首先看3 > 2
为真,但接下来还要比较,而true
就是1
,false
就是0
,所以(3 > 2) > 1
变成了1 > 1
,自然为假。
程序不报错不代表没错。关键还是要理解代码背后,程序是如果工作的。