gpt4 book ai didi

java - 分配 boolean 值返回 boolean 值,但分配整数则不会。为什么?

转载 作者:行者123 更新时间:2023-11-29 06:48:24 25 4
gpt4 key购买 nike

早些时候我在 if 条件中有 b=true,它被认为是一个 boolean 值。但同样不适用于整数。对于 x=1 我收到一个错误

Cannot convert from int to boolean.

下面是代码片段。

public class Tester {
public static void main(String[] args) {
boolean b = false;
if (b = true)
System.out.println("b true");
else
System.out.println("b false");

int x = 0;

if (x = 1)
System.out.println("x 1");
else
System.out.println("x 0");
}
}

最佳答案

如 Java 语言规范中所述,section 15.26

At run time, the result of the assignment expression is the value of the variable after the assignment has occurred. The result of an assignment expression is not itself a variable.

赋值实际上是表达式。他们也评估一个值。什么值(value)?分配给变量的值。因此,如果我们忽略赋值的副作用,您的 if 语句等同于:

boolean b = false;
if (true)
System.out.println("b true");
else
System.out.println("b false");

int x = 0;

if (1)
System.out.println("x 1");
else
System.out.println("x 0");

显然,if (1) 是无效的,因为只有 boolean 值可以进入 if 语句的 ()

关于java - 分配 boolean 值返回 boolean 值,但分配整数则不会。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57952762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com