**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
5个月前关门了。
改进这个问题
我在努力理解 for
循环及其工作方式 boolean
s。我写了几行简单的代码,我不太明白为什么输出是这样。
public class notes {
public static void main(String[] args) {
boolean[] test = {false, false, true};
if (test[0] = false) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
}
我假设因为测试数组中索引0处的布尔值为false,那么if语句也应该打印yes。但是,它打印的不是。这是为什么?
3条答案
按热度按时间vsaztqbk1#
像这样试试。因为条件会导致一个true或false条件,所以您可以单独使用布尔值。因为您希望它在false时打印yes,所以需要将其设置为true,这样条件语句就会成功。因此,通过在bang前面加前缀来反转条件
!
(又名not操作符)。8i9zcol22#
您正在分配
false
数组的第一个元素,其计算结果为false
并导致else
要执行的分支。你需要使用==
用于比较和boolean
s、 您可以简单地使用逻辑not运算符(!
)检查是否是false
. 比较布尔值总是多余的,因为比较的结果是布尔值。whitzsjs3#
您正在使用赋值运算符
=
,而不是使用比较运算符==
,因此您不进行比较,而是指定false
值与数组的索引0相同false
然后作为布尔值计算;因此,else
块执行。请尝试以下操作:
注意,您也可以使用
!
一元运算符,如!booleanValue
. 对你来说!test[0]
.看看java中的操作符。