【问题标题】:How to use my if/else statement in a for loop with arrays?如何在带有数组的 for 循环中使用我的 if/else 语句?
【发布时间】:2018-08-30 11:13:18
【问题描述】:

我有代码将来自EditText 的用户输入与正确的翻译(String[] answers)进行比较。现在我写了一个if/else 声明,但我试图把它放在一个for 循环中。否则我需要写超过 30 条语句。只是有几个数字不同。

现在我想出了以下“基础”:

for(int i = 0; i < answers.length; i++){

        if (Uinput[].equals(answers[])) {
            edit1.setBackgroundColor(Color.parseColor("#00FF00"));
        } else {
            edit1.setBackgroundColor(Color.parseColor("#FF0000"));
        }
    }

我需要在括号([])之间放什么,因为它不允许它为空,以及进一步的任何建议或更改?提前致谢。

我目前使用的代码示例:

private String[] answers = {"daylight", "task"};

private EditText edit1;

this.edit1 = findViewById(R.id.edit1);

String Uinput[] = {edit1.getText().toString()};

//        Comparison 1
        if (Uinput[0].equals(answers[0])) {
            edit1.setBackgroundColor(Color.parseColor("#00FF00"));
        }
        else {
            edit1.setBackgroundColor(Color.parseColor("#FF0000"));
        }

【问题讨论】:

  • 遵循 Java 命名约定:变量名总是以小写字母开头。 Uinput 应该是 uinput
  • 在我的代码中更改了它。谢谢!

标签: java android for-loop if-statement


【解决方案1】:

您不需要循环。您可以简单地使用Arrays.asList 例如

if (Arrays.asList(answers).contains(edit1.getText().toString())) {
    edit1.setBackgroundColor(Color.parseColor("#00FF00"));
} else {
    edit1.setBackgroundColor(Color.parseColor("#FF0000"));
}

【讨论】:

  • 感谢您的回复,使用此代码,它的工作方式与我目前拥有的代码相同,但因为我有 34 次比较,它要求我写 34 次,这就是我想要循环它的原因。但是感谢您的努力。
  • “我有 34 次比较”是什么意思?
  • @J.Doe 你不需要写 34 次。您有一个 contains 方法,它将检查数组的每个元素。
  • @JayeshBabu 我总共使用了 34 次代码,因为我有 34 次比较
  • @MuratK。是的,但我有 34 个edits(edit1, edit2 等)而且我“需要”检查一个特定元素,就好像用户混淆了答案的顺序一样,它仍然会将其设置为 true,因为它会检查所有数组列表的元素。
【解决方案2】:

你应该把 i 放在方括号里

for(int i = 0; i < answers.length; i++){
        if (Uinput[i].equals(answers[i])) { // USE i in the brackets
            edit1.setBackgroundColor(Color.parseColor("#00FF00"));
        } else {
            edit1.setBackgroundColor(Color.parseColor("#FF0000"));
        }
    }

【讨论】:

  • 这将导致 NullPointerException。
  • 这不起作用,当我使用它时,它只检查第一个并且只给出错误。即使正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2017-06-14
  • 2023-03-30
相关资源
最近更新 更多