Update 04-Operators.md

#237
This commit is contained in:
Joe
2019-09-03 21:08:50 +08:00
committed by GitHub
parent d5f6d055c7
commit 02ca18a25c

View File

@@ -903,7 +903,7 @@ while(x = y) {
}
```
显然,程序员原意是测试等价性 `==`,而非赋值 `=`。若变量 **y** 非 0 的话,在 C/C++ 中,这样的赋值操作总会返回 `true`。于是,上面的代码示例将会无线循环。而在 Java 中,这样的表达式结果并不会转化为一个布尔值。 而编译器会试图把这个 **int** 型数据转换为预期应接收的布尔类型。最后我们将会在试图运行前收到编译期错误。因此Java 天生避免了这种陷阱发生的可能。
显然,程序员原意是测试等价性 `==`,而非赋值 `=`。若变量 **y** 非 0 的话,在 C/C++ 中,这样的赋值操作总会返回 `true`。于是,上面的代码示例将会无循环。而在 Java 中,这样的表达式结果并不会转化为一个布尔值。 而编译器会试图把这个 **int** 型数据转换为预期应接收的布尔类型。最后我们将会在试图运行前收到编译期错误。因此Java 天生避免了这种陷阱发生的可能。
唯一有种情况例外:当变量 `x` 和 `y` 都是布尔值,例如 `x=y` 是一个逻辑表达式。除此之外,之前的那个例子,很大可能是错误。
@@ -1469,4 +1469,4 @@ bigger = -4
[^2]: *John Kirkham* 说过:“自 1960 年我开始在 IBM 1620 上开始编程起,至 1970 年之间FORTRAN 一直都是一种全大写的编程语言。这可能是因为许多早期的输入设备都是旧的电传打字机,使用了 5 位波特码,没有小写字母的功能。指数符号中的 e 也总是大写的,并且从未与自然对数底数 e 混淆,自然对数底数 e 总是小写的。 e 简单地代表指数,通常 10 是基数。那时,八进制也被程序员广泛使用。虽然我从未见过它的用法,但如果我看到一个指数符号的八进制数,我会认为它是以 8 为基数的。我记得第一次看到指数使用小写字母 e 是在 20 世纪 70 年代末,我也发现它令人困惑。这个问题出现的时候,小写字母悄悄进入了 Fortran。如果你真的想使用自然对数底我们实际上有一些函数要使用但是它们都是大写的。”
<!-- 分页 -->
<div style="page-break-after: always;"></div>
<div style="page-break-after: always;"></div>