【问题标题】:What is wrong with this nested for loop? [duplicate]这个嵌套的 for 循环有什么问题? [复制]
【发布时间】:2016-11-10 11:27:10
【问题描述】:

我这辈子都无法弄清楚为什么这个嵌套的 for 循环不起作用。

public void getMagsAboveX(double minimumMag)
{
    for(Observatory myObservatory : monitoring) {
        for(Earthquake myEarthquake : earthquakes) {
            if(myEarthquake.returnMagnitude() > minimumMag) {
                System.out.print(myEarthquake.returnMagnitude() + ", ");
            }
        }
    }
}

我收到错误“找不到符号 - 可变地震”,但据我所知,地震是我要迭代的第二个 ArrayList 的名称。如果我将“地震”更改为 ArrayList(),则会收到错误“-> 预期”。我不知道它不喜欢什么。

【问题讨论】:

  • 哪一行代码失败,出现了哪个错误?
  • Java 的良好传统不是使用简单的“变量”一词,而是使用“字段”、“局部变量”、“静态字段”、“参数”等……词有含义,错误使用给误解
  • get... 方法的用户期望给他一些东西,而不是void。您的 get... 方法会产生副作用。
  • 您的list... 方法有一个参数minimumMag。但是,您说您想要用户输入的值。
  • @Smutje 例如,如果我尝试这样做: public void listMagsAboveX(double minimumMag) { for(Observatory myObservatory : monitoring) { System.out.print(myObservatory.getMagsAboveX(minimumMag) + ", ") ; myObservatory.getMagsAboveX(minimumMag) 失败,错误 'void' type not allowed here

标签: java for-loop arraylist nested nested-loops


【解决方案1】:

首先:在你的方法中你的 javadoc cmets 你说你的方法“返回”了一些东西。他们没有。两种方法都是void。

只要您在 listMagsAboveX 方法中对 Observatory 类型的对象调用 getMagsAboveX(minimumMag),我看不出有什么可能失败。

如果您需要更多帮助,您应该发布完整的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多