Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 布尔值不会返回false_Java_Boolean - Fatal编程技术网

Java 布尔值不会返回false

Java 布尔值不会返回false,java,boolean,Java,Boolean,这一部分,所以我的布尔值从不返回false,这就是我认为我的问题所在。因为当运行时,它只允许玩家赢,而不允许玩家输,它将输出“你输了”,但仍然会像他们赢了一样添加分数。您使用的是赋值运算符=,因此答案始终是真的。相等的比较运算符是==,正如您在代码的其他地方已经使用过的那样。但是answer已经是一个布尔值了。无需使用==进行比较;就用它吧。改变 if (answer = false) { points = points - risk; 到 如果否决,至少提供一个理由why@Downv

这一部分,所以我的布尔值从不返回false,这就是我认为我的问题所在。因为当运行时,它只允许玩家赢,而不允许玩家输,它将输出“你输了”,但仍然会像他们赢了一样添加分数。

您使用的是赋值运算符
=
,因此
答案
始终是
真的
。相等的比较运算符是
==
,正如您在代码的其他地方已经使用过的那样。但是
answer
已经是一个布尔值了。无需使用
==
进行比较;就用它吧。改变

if (answer = false) {
    points = points - risk;


如果否决,至少提供一个理由why@Downvoter请解释如何改进这篇文章。@rgetman我不是反对投票人,但你可以通过解释
==
用于比较来改进这篇文章。此外,OP可能没有足够的布尔逻辑经验来了解为什么
foo==true
foo
相同。您可以添加的另一件事是如何使用
处理案例=
@Pshemo我将添加一个关于
=
的解释,但我最初认为没有必要这样做。OP在关于
猜测的
if
语句中正确地使用了
=
,就在关于
回答的
if
语句的上方,在底部的do while条件中。我不是说这是必要的,我是说这将是一种改进:)只是为了增加@rgetman所说的内容。。。使用单个
=
时,这是一个分配运算符。也就是说,您只是指定
答案
始终为真。当比较这样的值时,可以使用
==
,但由于这是一个
布尔值,所以不需要它。您只需在if语句中按原样提供布尔值,然后由Java处理它
if (answer = false) {
    points = points - risk;
if (answer = true) {
    points = points + (risk*2);
} if (answer = false) {
    points = points - risk;
}
if (answer) {
    points = points + (risk*2);
} else {
    points = points - risk;
}