编程:从入门到放弃
    前言
    语言和环境
    +=
    C和C++
    Hex
    Map
    Scope(1):"这"是啥
    Scope(2)
    Singleton
    什么顺序
    从A到Z
    函数
    切分字符串
    初始化(1)
    初始化(2)
    单引号,还是双引号
    参数传递
    左,还是右
    引用
    时间(1)
    时间(2)
    时间(3)
    时间(4)
    时间(5)
    比大小
    流氓甘地
    相等,还是不等(1)
    相等,还是不等(2)
    相等,还是不等(3)
    相等,还是不等(4)
    第一个说了算,还是最后一个
    语言和环境
    除以0
    随机数

比大小

Updated: 2021-12-12

入门。

程序中一般可以使用><来比较两个数的大小。而并不是每个语言都支持直接比较两个以上的数。比如 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就是1false就是0,所以(3 > 2) > 1变成了1 > 1,自然为假。

程序不报错不代表没错。关键还是要理解代码背后,程序是如果工作的。