我对以下代码有疑问。
基本上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/
任何帮助将不胜感激。谢谢。
答案 0 :(得分:5)
如果您不立即从循环中返回,则您只是递增变量 - 如果预测为Sunny
,Rain
或Cloudy
,则您点击了退货声明,不要递增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++;
从代码后面开始。