我的以下代码有问题。
基本上,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/
任何帮助将不胜感激。谢谢。
最佳答案
如果您没有立即从循环中返回,则仅增加变量-如果预测为Sunny
,Rain
或Cloudy
,则命中return语句且不增加i
。
在为i++
分配值之后,可以直接将foreCon
移至循环的位:
String foreCon = WeatherAPI.weatherForecastList.get(i).forecastCon;
i++;
if (foreCon.equals("Sunny"))
...
我不得不说,无论如何感觉还是有点奇怪的设计-我个人将“通过单词迭代”和“将单词转换成符号”分开。 (奇怪的是,您只返回一次
""
,就在列表末尾。如果您实现了Iterable<String>
,那会更清洁。)