0          int specialFuncStart;
  1          String[] specialFunctions= {"sum","ddx","integral"};
  2          for(String element: specialFunctions){
  3              specialFuncStart = finalMath.lastIndexOf("sum");
  4          }
  5          while (specialFuncStart != -1) {   code  }

为什么line 5可能未初始化specialFuncStart?字符串是最终的且固定的,因此for循环将始终运行。编译器不知道还是我缺少什么?我了解初始化specialFuncStart = -1;是如何解决它,但是为什么呢?

最佳答案

您已声明它,但未初始化它。您需要为其设置一个值:

int specialFuncStart; // declare
specialFuncStart = 0; // initialize

int specialFuncStart = 0; // both

您的编译器认为有时候specialFuncStart不会被初始化,因为for循环不必执行。

10-04 13:15