在我的测验游戏中,在一个关卡的最后一关,我必须检查一些条件,其中4个。在游戏中,我在一个整数变量上加了+1,4个变量。在级别结束时,我将这些值与另一个整数activeButtonsTotal相加。我将4个布尔值设置为true或false。所以,我需要检查两个条件四次:如果我的布尔值为false,如果我的activeButtonsTotal等于16,如果它要将我的一个按钮设置为Enabled,对于下一个布尔值和activeButtonsTotal,同样的事情,然后像这样检查4次。我要把这4个都检查一遍。我尝试了if语句和else if语句,但没有成功。
boolean columnACorrecct, columnBCorrect, columnCCorrect, columnDCorrect;
activeButtonsTotal = activeButtonsA+activeButtonsB+activeButtonsC+activeButtonsD;
if((columnACorrect=false) && (activeButtonsTotal==16)){
columnA.setEnabled(true);
}
if((columnBCorrect=false) && (activeButtonsTotal==16)){
columnB.setEnabled(true);
}
if((columnCCorrect=false) && (activeButtonsTotal==16)){
columnC.setEnabled(true);
}
if((columnDCorrect=false) && (activeButtonsTotal==16)){
columnD.setEnabled(true);
}发布于 2014-08-17 05:22:33
我不确定我是否理解了你所有的逻辑,但是你的"if“语句都缺少等号。您说您必须比较您的布尔值是否为false,以及数字,但您在条件中指定了"False“。你需要"==“。
我会这样做:
if(activeButtonsTotal==16)
{
columnA.setEnabled(!columnACorrect);
columnB.setEnabled(!columnBCorrect);
columnC.setEnabled(!columnCCorrect);
columnD.setEnabled(!columnDCorrect);
}发布于 2014-08-17 05:18:40
我会这样做:
columnA.setEnabled(!columnACorrect && activeButtonsTotal==16);
columnB.setEnabled(!columnBCorrect && activeButtonsTotal==16);
columnC.setEnabled(!columnCCorrect && activeButtonsTotal==16);
columnD.setEnabled(!columnDCorrect && activeButtonsTotal==16);发布于 2014-08-17 05:19:42
每次尝试检查条件时,都会将布尔变量赋值为false。这将导致条件为false,并且永远不会在块中运行代码。
要检查是否相等,请使用==;
columnACorrect==false
columnBCorrect==false
columnCCorrect==false
columnDCorrect==false但我建议使用:
!columnACorrect
!columnBCorrect
!columnCCorrect
!columnDCorrect它做的是同样的事情。第二种选择更可取。
https://stackoverflow.com/questions/25344038
复制相似问题