我是Android的新手,我的代码有问题。
当用户按错块时,软件未显示“失败”。
当我调试代码时,它仅运行if部分,而不运行else部分。我也想执行else条件,有什么建议吗?
private void buttonLogic(View v) {
List<Integer> tempList = new ArrayList<>();
for (int i = 0; 1 <= curLevel; i++) {
if(i!=12)
tempList.add(buttons.get(i));
else
break;
}
if (tempList.contains(v.getTag())) {
curGuess++;
checkWin();
} else {
lostGame();
}
}
private void lostGame () {
Toast.makeText(this, "Fail!", Toast.LENGTH_SHORT).show();
disableButtons();
b_new.setVisibility(View.VISIBLE);
}
答案 0 :(得分:0)
您的if条件有误。这是一个无限循环。
for (int i = 0; 1 <= curLevel; i++) {
在大多数情况下小于curLevel为1,如果不是,则curLevel将为0或1,因此“ i”最多为0!
你想要什么?
我认为您必须输入“ i”而不是1
for (int i = 0;i <= curLevel; i++) {
答案 1 :(得分:0)
首先,我真的希望 curLevel 已在您粘贴的方法之外的某个地方声明/初始化。
继续...您的错误在于您的for循环参数。我想您打算将'i'代替'1'。语句1 <= curLevel
可能始终返回true(如果curLevel> = 1),并且您的代码可能永远不会继续执行下一条指令。您的for循环应该是这样的:
for (int i = 0; i <= curLevel; i++) {
if(i!=12)
tempList.add(buttons.get(i));
else
break;
}
重新运行它,您的代码应该可以正常运行。希望对您有所帮助。.编码愉快!