【发布时间】: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