这是报错信息L:\Java相关\JAVA练习\ListCreat.java:57: missing return statement
    public int findFreeNode(){
                             ^
1 error

解决方案 »

  1.   

    我把 findFreeNode()方法改成如下的写法后就编译无错误了
    public int findFreeNode(){
        
         int i;
         for(i=0;i<MaxLength;i++)
         if(Next[i]==-2)
         break;
             return i;
        
        
        }
    findFreeNode方法的这两种写法难道不是等效的吗?有什么区别吗?
      

  2.   

    ListCreat.java:67: missing return statement缺少return语句。
    public int findFreeNode(){
        int i;
         for(i=0;i<MaxLength;i++)
         if(Next[i]==-2)
         return i;
         return 0;   
        } 此方法需要有个返回值
    而原代码中
    有两种情况下将不会有返回值
    1、maxlength<=0
    2、Next[i]都不能于-2
    所以需要在加一return语句,编译可通过,至于具体返回什么值要看程序需求了。
      

  3.   

    1)  我的这个程序在前面已经有
    int MaxLength=20;
    这个初始化了,所以不可能出现MaxLength<=0的情况吧2)Node(){
    int i;
    for(i=0;i<MaxLength;i++){
    Next[i]= -2;
    }
    }
    这个构造方法中也已经初始化Next[i]的初始值为-2了,不会出现Next[i]都不等于-2的情况吧
      

  4.   

    谢谢febchen!!!!
    你的回答让我有了不小的进步!