Java Boolean In';如果';语句不起作用
不幸的是,下面的代码片段没有正常工作。它附加到一个JLabel上,因此当单击时,会注意到播放的是PlayerOne还是PlayerTwo,并相应地重新排列它们的布尔值 [例如:当鼠标单击时:如果playerOne为true,则执行某些操作,并将playerOne设置为false,将playerTwo设置为true] 所以,当mouseClicked被激活时,它交换它们的值Java Boolean In';如果';语句不起作用,java,if-statement,boolean,statements,Java,If Statement,Boolean,Statements,不幸的是,下面的代码片段没有正常工作。它附加到一个JLabel上,因此当单击时,会注意到播放的是PlayerOne还是PlayerTwo,并相应地重新排列它们的布尔值 [例如:当鼠标单击时:如果playerOne为true,则执行某些操作,并将playerOne设置为false,将playerTwo设置为true] 所以,当mouseClicked被激活时,它交换它们的值 public void mouseClicked(MouseEvent arg0) {
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);
}}
提前感谢,,
汤姆
=
不是=
如果用一个1或2的“currentPlayer”整数来代替,不是更简单吗?这也将防止(可能不可能的)两个玩家同时活跃的状态
=
不是=
如果用一个1或2的“currentPlayer”整数来代替,不是更简单吗?这还可以防止同时激活两个玩家的状态(可能是不可能的)。您在这里使用的是作业
if (playerTwo = true)
取代
if (playerTwo == true)
或者更好
if (playerTwo)
您在这里使用的是作业
if (playerTwo = true)
取代
if (playerTwo == true)
或者更好
if (playerTwo)
在java中,测试两项之间相等性的操作数是==而不是'=',这是一个赋值;赋值返回指定的值,因此:
if (playerOne = true)
将始终为true,因为playeron将被分配到true
,则if将变为if(true)
,并且将始终执行关联的语句
重构代码的最佳方法是:
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
是多余的。在java中,测试两个项之间相等性的操作数是==而不是'=',这是一个赋值;赋值返回指定的值,因此:
if (playerOne = true)
将始终为true,因为playeron将被分配到true
,则if将变为if(true)
,并且将始终执行关联的语句
重构代码的最佳方法是:
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
将是多余的。我的观点是,所有语法错误(这一个不符合条件)都应该关闭为过于本地化。我的观点是,所有语法错误(这一个符合条件)都应该关闭为过于本地化。