Android错误“ IF”和“ ELSE”

时间:2018-08-19 23:11:14

标签: java android listview if-statement arraylist

我是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);

    }

2 个答案:

答案 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;
    }

重新运行它,您的代码应该可以正常运行。希望对您有所帮助。.编码愉快!