当前位置: 首页 > 知识库问答 >
问题:

方法[duplicate]中缺少返回语句错误

蒙弘图
2023-03-14
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,则返回短语too small。

共有1个答案

辛弘壮
2023-03-14

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.
}
 类似资料:
  • 下面的Java不工作,因为它缺少一个return语句。我搞不懂怎么了。有什么想法吗? 即使我去掉字符串u,它也会给出相同的错误,如果我添加int usernameLimit,它也会给出相同的错误。

  • 我正在运行这段java代码,遇到一个错误“缺少返回语句”,请帮助。我在windows中使用cmd运行。

  • 问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。

  • 所以我得到了一个编译器错误,我丢失了一个返回语句,我已经研究了其他类似的问题,但我仍然对这个问题感到困惑。 如果之前有人问过这个问题,我会提前道歉,但我已经看过了其他各种问题,我似乎无法弄清楚这一点。

  • 我可以找到类似的问题,但我找不到我对这个特定案例期望的答案。 当我执行这段代码时,我得到一个编译错误,上面写着“缺少返回语句”。但是,据我所知,很明显,for循环中的代码将毫无疑问地执行,因为第一次,x=0。因此,对于这种特殊情况,没有理由不在for循环中执行代码。那么,为什么我们还需要在for循环之外声明一个额外的return语句呢?。

  • 我想在HW的整数中找到奇数。所以CountOddigtis(56781)应该返回(非打印)5 7 1。我的方法是将整数转换为字符串,并使用它返回。我遇到的问题是 > 缺少返回语句错误,即使我在if语句中有一个返回语句。有人能解释这个错误意味着什么以及如何克服它吗? 当我把返回x;放在方法的末尾时,它会打印56781的错误答案49。 Java解决stringn.charat(x)%2!=0考虑到我可