【问题标题】:Android error "IF" and "ELSE"Android 错误“IF”和“ELSE”
【发布时间】:2018-08-19 23:11:14
【问题描述】:

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

    }

【问题讨论】:

  • for (int i = 0; 1 &lt;= curLevel; i++) { 这是一个无限循环吗? curLevel 是什么?你为什么要针对它测试1
  • 检查你的 for 循环参数。我猜你想输入 'i' 而不是 '1'。
  • 这是一个记忆游戏应用程序,游戏开始后会在方块(4X3)内显示数字0几秒钟,然后用户必须记住它然后按正确的顺序。如果用户输入正确的顺序,他将被移动到下一个级别(curLevel),共有 12 个级别。如果不是(否则)将显示“失败”消息,游戏将重新开始。 (目前只有其他部分不起作用)

标签: java android listview if-statement arraylist


【解决方案1】:

首先,我真的希望 curLevel 已在您粘贴的方法之外的某个地方声明/初始化。

继续...您的错误在于您的 for 循环参数。我猜你打算放'i'而不是'1'。语句 1 &lt;= curLevel 可能总是返回 true(如果 curLevel >= 1)并且您的代码可能永远不会继续执行下一条指令。你的 for 循环应该是这样的:

    for (int i = 0; i <= curLevel; i++) {
        if(i!=12)
        tempList.add(buttons.get(i));
       else
            break;
    }

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

【讨论】:

    【解决方案2】:

    您的 if 条件有误。这是一个无限循环。

    for (int i = 0; 1 <= curLevel; i++) {
    

    在大多数情况下,1 小于 curLevel,如果不是,则 curLevel 将为 0 或 1,因此“i”最多为 0!

    你想要什么?

    我认为你必须把“i”而不是 1

    for (int i = 0;i <= curLevel; i++) {
    

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2014-06-03
      相关资源
      最近更新 更多