循环中的java变量不计算在内

时间:2015-03-05 20:08:02

标签: java loops

我对以下代码有疑问。
基本上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 "";
}

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

2 个答案:

答案 0 :(得分:5)

如果您不立即从循环中返回,则您只是递增变量 - 如果预测为SunnyRainCloudy,则您点击了退货声明,不要递增i

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

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

我不得不说,无论如何它感觉有点像一个奇怪的设计 - 我会分开&#34;迭代单词&#34;来自&#34;将单词转换为符号&#34;,个人。 (如果您只在列表末尾返回""一次也很奇怪。如果您实现了Iterable<String>,那将更加清晰。)< / p>

答案 1 :(得分:1)

更改

String foreCon = WeatherAPI.weatherForecastList.get(i).forecastCon;

String foreCon = WeatherAPI.weatherForecastList.get(i++).forecastCon;

并删除

i++; 

从代码后面开始。