如何解决boolean如何在Java中的if语句中工作?
我试图了解for
循环的基础以及它们如何与boolean
一起工作。我只写了几行代码,但我不太明白为什么输出就是它。
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。但是,它不会打印。为什么会这样?
解决方法
像这样尝试。由于条件产生的是真还是假条件,因此您可以单独使用布尔值。由于您希望在false时将其打印为yes,因此需要将其设置为true,这样条件语句才能成功。因此,请在前缀!
(又称为NOT运算符)的前面反转条件。
public class notes {
public static void main(String[] args) {
boolean[] test = {false,false,true};
// if false do it.
if(!test[0]) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
}
,
您使用的是赋值运算符=
,而不是比较运算符==
,因此您不进行比较,而是分配一个false
数组索引0的值,然后将相同的false
评估为布尔值;因此,else
块将执行。
尝试以下方法:
public class notes {
public static void main(String[] args) {
boolean[] test = {false,true};
if(test[0] == false) { //you had a mistake here.
System.out.println("yes");
} else {
System.out.println("no");
}
}
}
请注意,您也可以使用!
一元运算符对布尔表达式求反,例如!booleanValue
。在您的情况下,它看起来像!test[0]
。
Have看一下Java中的运算符。
,您正在将false
分配给数组的第一个元素,该元素的结果为false
并导致执行else
分支。您需要使用==
进行比较,对于boolean
,只需使用逻辑非运算符(!
)来检查它是否为false
。比较布尔值总是多余的,因为比较的结果是布尔值。
if(!test[0]) {
System.out.println("yes");
} else {
System.out.println("no");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。