【发布时间】:2020-07-30 06:10:29
【问题描述】:
我得到了这个评估,但这两个问题一直萦绕在我的脑海中。这两个代码看起来相似,但根据增量给出不同的输出
代码 #1:
package com.company;
class Main {
public static void main(String [] args) {
boolean x = true;
boolean y = false;
short z = 42;
if((z++ == 42) && (y = true))
z++;
if((x = false) || (++z == 45))
z++;
System.out.println("z = " + z);
}
}
这段代码看起来不错,它增加了应该增加的值并将该值返回到“z”,从而输出
输出:
z = 46
Process finished with exit code 0
但第二个代码似乎不同,因为它不保存增量值
代码 #2: 包 com.company;
公共类Test2
{
public static void main(String [] args) {
boolean x = true;
boolean y = false;
short z = 42;
if((x == true) && (y = true))
z++;
if((y == true) || (++z == 44))
z++;
System.out.println("z = " + z);
}
}
这不会像第一个代码那样保存第二个 if 条件语句的增量
输出:
z = 44
Process finished with exit code 0
我错过了什么重要的东西吗?
【问题讨论】:
-
您是否遗漏了一些重要的事情?是的,不要写那样的混乱和困难的代码。
-
在第一个中,最后的
z++不在条件内。 (大多数)空白在 Java 中没有语义意义,不像 Python。 -
编写代码的是我的导师。我正在尝试了解输出以及为什么会这样
-
安迪对不起我的错。我是将系统置于最终 if 语句下方以便我理解的人,即使我删除了该系统,它仍然是相同的输出,即 46
标签: java conditional-statements increment