为什么不能返回已在函数内初始化的变量

时间:2018-05-11 17:46:27

标签: java

在java中,如果我在函数中初始化了一个变量,该函数最后返回一个变量,为什么我不能返回该函数?

以下是我正在使用的一些示例代码

  private int spitNumber(int imgNum) {
      int returnNum;
      switch (imgNum) {
      case 1:
      case 14:
      case 27:
      case 40:
      returnNum = 1;
      break;

      case 12:
      case 25:
      case 38:
      case 51:
      returnNum = 12;
      break;

      case 13:
      case 26:
      case 39:
      case 52:
      returnNum = 13;
      break;

    };
    return returnNum;
  }

编译代码时,我收到错误消息

error: variable returnNum might not have been initialized
    return returnNum;
           ^

4 个答案:

答案 0 :(得分:4)

您正在使用switch,但您的开关并未涵盖所有情况。

imgNum = 100时考虑一下,您的计划会为returnNum分配什么价值?

没什么,对吧?

因此,您应初始化returnNum的起始值或为default提供switch个案例并在此处指定returnNum

答案 1 :(得分:0)

因为您没有任何默认案例。显示的消息表明,如果您的值不在处理的案例中,则该变量可能尚未初始化。

答案 2 :(得分:0)

需要在代码的开头初始化变量。

示例:      int returnNum = 0;

答案 3 :(得分:0)

例如int等原始类型不能是null。你必须初始化它。