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

use*_*021 0 java loops

我有以下代码的问题.
基本上 iin 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 "";
}
Run Code Online (Sandbox Code Playgroud)

这是使用的Cheatsheet.http://erikflowers.github.io/weather-icons/cheatsheet/
非常感谢任何帮助.谢谢.

Jon*_*eet 5

如果你没有立即从循环中返回,你只是递增变量 - 如果预测是Sunny,Rain或者Cloudy你点击了一个return语句而没有增加i.

i++在为一个值赋值后,您可以直接移动到循环的位foreCon:

String foreCon = WeatherAPI.weatherForecastList.get(i).forecastCon;
i++;
if (foreCon.equals("Sunny")) 
...
Run Code Online (Sandbox Code Playgroud)

我不得不说,无论如何它感觉有点像一个奇怪的设计 - 我会将"迭代通过单词"从"将单词转换为符号",个人而言.(同样奇怪的是,你只会返回""一次,就在列表的末尾.如果你实现了一个Iterable<String>,那就更清洁了.)