Java Boolean In #39;IF#39; Statement Not Functioning(IF 语句中的 Java 布尔值不起作用)
问题描述
很遗憾,下面的代码片段无法正常运行.它附加到 JLabel 上,以便在单击时注意到 PlayerOne 或 PlayerTwo 是否正在播放,并相应地重新排列它们的布尔值
Unfortunately the snippet of code below is not functioning as it should. It's attached to a JLabel so that when clicked, notices whether PlayerOne or PlayerTwo is playing, and re-arranges their boolean values accordingly
[例如:当鼠标点击时:如果 playerOne 为 true,则做某事,将 playerOne 设置为 false,将 playerTwo 设置为 true].
[ex: When mouseClicked:If playerOne is true, then do something, and set playerOne to false and playerTwo to true].
所以,当 mouseClicked 被激活时,它会交换它们的值!
So, it swaps their values when mouseClicked is activated!
public void mouseClicked(MouseEvent arg0) {
if(playerOne = true){
playerOne = false;
playerTwo = true;
boxOne.setIcon(xIcon);
} else { if(playerTwo = true){
playerOne = true;
playerTwo = false;
boxOne.setIcon(oIcon);
}}
提前致谢,汤姆!
推荐答案
在java中,测试两个项目是否相等的操作数是==而不是'=',这是一个赋值;赋值返回分配的值,所以你的:
in java the operand to test equality between two items is == not '=' which is an assignment; an assignment returns the assigned value, so your :
if (playerOne = true)
将始终为真,因为 playerOne 将被分配给 true
,然后 if 将变为 if (true)
,并且将始终执行关联的语句.
will always be true as playerOne will be assigned to true
, then the if will become if (true)
and the statement associated will always be executed.
重构代码的最佳方法是:
the best way to refactor your code is:
public void mouseClicked(MouseEvent arg0) {
if(playerOne) {
playerOne = false;
playerTwo = true;
boxOne.setIcon(xIcon);
} else if(playerTwo) {
playerOne = true;
playerTwo = false;
boxOne.setIcon(oIcon);
}
}
因为 something == true
将是多余的.
这篇关于'IF' 语句中的 Java 布尔值不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:'IF' 语句中的 Java 布尔值不起作用


基础教程推荐
- 从 python 访问 JVM 2022-01-01
- 验证是否调用了所有 getter 方法 2022-01-01
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- Java Swing计时器未清除 2022-01-01
- 大摇大摆的枚举 2022-01-01
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 多个组件的复杂布局 2022-01-01
- Java 实例变量在两个语句中声明和初始化 2022-01-01