我的以下代码有问题。
基本上,i中的String foreCon不会递增(保持在0处)。
因此return String不会根据天气预报显示。

private int i = 0;
public String conditionList2() {
  while (i < WeatherAPI.weatherForecastList.size()) {
    String foreCon = WeatherAPI.weatherForecastList.get(i).forecastCon;
    if (foreCon.equals("Sunny"))
      return "\uf00d";
    else if(foreCon.equals("Rain"))
      return "\uf01a"
    else if(foreCon.equals("Cloudy"))
      return "\uf013";
    i++;
  }
  return "";
}


这是使用的备忘单。 http://erikflowers.github.io/weather-icons/cheatsheet/
任何帮助将不胜感激。谢谢。

最佳答案

如果您没有立即从循环中返回,则仅增加变量-如果预测为SunnyRainCloudy,则命中return语句且不增加i

在为i++分配值之后,可以直接将foreCon移至循环的位:

String foreCon = WeatherAPI.weatherForecastList.get(i).forecastCon;
i++;
if (foreCon.equals("Sunny"))
...


我不得不说,无论如何感觉还是有点奇怪的设计-我个人将“通过单词迭代”和“将单词转换成符号”分开。 (奇怪的是,您只返回一次"",就在列表末尾。如果您实现了Iterable<String>,那会更清洁。)

09-30 16:45