【发布时间】:2020-05-29 01:56:55
【问题描述】:
BigestCountries 类有一个代码。
它由2个数组组成:
private String[][] biggestCountries; - holds country name and the continent, e.g. biggestCountries[CHINA][COUNTRY_NAME] = "China"; biggestCountries[CHINA][COUNTRY_CONTINENT] = "Asia";
private int[][] countryData; - holds populations and year founded, e.g. countryData[CHINA][COUNTRY_POPULATION] = 1433783686; countryData[CHINA][COUNTRY_AGE_FOUNDED] = 1949;
public String[] getCountriesFoundedBetween(int min, int max){
int countriesMatched;
countriesMatched = 0;
String[] countriesFoundedBetween;
if(biggestCountries == null || biggestCountries.length == 0){
return null;
}
for(int i = 0; i < biggestCountries.length; i++){
if(countryData[i][COUNTRY_AGE_FOUNDED] >= min && countryData[i][COUNTRY_AGE_FOUNDED] <= max){
System.out.println(String.format("%d %s", countryData[i][COUNTRY_AGE_FOUNDED], biggestCountries[i][COUNTRY_NAME]));
countriesMatched++;
}
}
if(countriesMatched > 0){
countriesFoundedBetween = new String[countriesMatched];
} else {
return null;
}
for(int i = 0; i < biggestCountries.length; i++) { // outer loop for countries array length of NUMBER_OF_COUNTRIES
String countryMatched = null;
System.out.println("biggestCountries[i] " + biggestCountries[i][COUNTRY_NAME]);
if(countryData[i][COUNTRY_AGE_FOUNDED] >= min && countryData[i][COUNTRY_AGE_FOUNDED] <= max){
for(int j = 0; j < countriesFoundedBetween.length; j++){ // how to escape inner loop?
countryMatched = biggestCountries[i][COUNTRY_NAME];
countriesFoundedBetween[j] = countryMatched;
System.out.println("countriesFoundedBetween: " + countriesFoundedBetween[j] + "; biggestCountries[i][COUNTRY_NAME]: " + biggestCountries[i][COUNTRY_NAME]);
}
}
}
return countriesFoundedBetween;
}
【问题讨论】:
-
你有三个循环,你想在最里面的循环满足某些条件后逃到最外面的循环?
-
是的,有些国家的信息分布在 2 个不同的阵列上。我需要遍历一个数组 - 捕获一些数据,然后遍历另一个数组并将国家/地区名称添加到我的最后一个数组
countriesFoundedBetween。在上面的屏幕截图中,长度是正确的——确实有 6 个国家符合条件。但这些并非都是澳大利亚人。 -
为什么不设置第一个嵌套循环可以测试的标志后从最内层循环中断,如果为真,则中断到第一个循环?
-
你只需要一个标记为
break。 -
好主意,但我相信我不知道如何正确实施它。我试过这个jmp.sh/pNqmiCB,但它似乎不起作用。
标签: java arrays for-loop nested-for-loop