【问题标题】:Missing return statement error in method [duplicate]方法中缺少返回语句错误[重复]
【发布时间】:2014-06-06 19:43:47
【问题描述】:
import java.util.Scanner;

public class Main {

public static String doStuff(int num){
    //your code here
    for(int i = 1; i < 5; i++){
        if(i == num){
            String str = String.valueOf(i);
            return str;
        }
        else if(i > 4){
            return "too large";

        }
        else if(i < 1){
            return "too small";
        }
    }

}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int n = in.nextInt();
    for(int i=0; i<n; i++){
        int a = in.nextInt();
        System.out.println( doStuff(a) );
    }
}

}

当我运行此代码时,我收到以下错误:

Main.java:21: error: missing return statement
}
^
1 error

我应该如何解决这个问题?

请参阅以下条件: 给定一个从 1 到 4(含)的数字,返回该数字的单词表示形式。例如,给定 2,返回 2。如果数字大于 4,则返回过大的短语。如果数字小于 1,则返回短语太小。

【问题讨论】:

  • 编译器抱怨您的 if 块可能无法涵盖所有​​可能性。您需要添加最终的else 块或在方法末尾有一个默认返回。
  • 第21行是哪一行?
  • 非常感谢。 else if(i

标签: java string methods integer return


【解决方案1】:

doStuff() 方法中的所有返回语句都是条件返回语句(存在于if-elsefor 循环中)。您需要在方法末尾有一个默认的return,以便在没有执行任何条件块的情况下该方法返回一些内容。

public static String doStuff(int num){
    //your code here
    for(int i = 1; i < 5; i++){
        if(i == num){
            String str = String.valueOf(i);
            return str;
        }
        else if(i > 4){
            return "too large";

        }
        else if(i < 1){
            return "too small";
        }
    }
    return null; // default return in case none of the if-else blocks are executed.
}

【讨论】:

    【解决方案2】:

    您在 for 循环中返回值。你应该返回一些默认值。

    public static String doStuff(int num){
        //your code here
        for(int i = 1; i < 5; i++){
            if(i == num){
                String str = String.valueOf(i);
                return str;
            }
            else if(i > 4){
                return "too large";
    
            }
            else if(i < 1){
                return "too small";
            }
        }
        return "default";
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-21
      • 2016-01-04
      • 1970-01-01
      • 2014-01-09
      • 2014-02-18
      • 2021-05-27
      • 2013-10-27
      • 1970-01-01
      • 2020-05-28
      相关资源
      最近更新 更多