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