方法中缺少return语句错误

时间:2014-04-22 12:24:34

标签: java string methods integer return

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,返回两个。如果数字大于4,则返回短语太大。如果该数字小于1,则将该短语返回太小。

2 个答案:

答案 0 :(得分:4)

doStuff()方法中的所有return语句都是条件返回语句(存在于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.
}

答案 1 :(得分:0)

您正在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";
}