【问题标题】:Java asking for return statement for classJava要求类的return语句
【发布时间】:2015-05-14 00:51:33
【问题描述】:

我有以下代码:

public class BinaryDecoder{
public static void main(String[] args){
    String binNum = "110101"; 
    int res = 0;
    for (int i = 0;i<binNum.length();i++){
        //res += parseDigit(binNum.charAt(i),binNum);
    }
//  System.out.println(res);

}
public static int parseDigit(int index, String binNum){
    switch (binNum.charAt(index)){
        case 0:
        break;
        case 1:
        int val = (int) Math.pow(2,-index+binNum.length());
        return val;
        }
}

}

我收到错误:BinaryDecoder.java:30: error: missing return statement } ^

我可能解释错了,但为什么我的类 BinaryDecode 有甚至需要一个 return 语句?代码还有其他问题吗?

注意:我是java新手,如果我的代码中有任何明显的错误,请见谅。

【问题讨论】:

    标签: java class return


    【解决方案1】:

    不是需要return语句;它是 parseDigit 函数,您已将其声明为返回 int。当你说它会返回值时,有可能不返回值是错误的。

    【讨论】:

      【解决方案2】:

      类不需要 return 语句,parseDigit 方法是。在其签名中,它声称返回int。您确实对该方法有一个return 语句,但由于它位于 switch 语句中,因此不能保证会发生。

      【讨论】:

        【解决方案3】:

        问题与您的 parseDigit 类有关。

        如果case为0,则没有返回,编译失败。试试这个:

        public static int parseDigit(int index, String binNum){
            switch (binNum.charAt(index)){
                case 0:
                return SOMETHING;
                break;
                case 1:
                int val = (int) Math.pow(2,-index+binNum.length());
                return val;
                default:
                return -1;
                break;
            }
        

        【讨论】:

        • 如果val != 0 &amp;&amp; val != 1呢?
        猜你喜欢
        • 2018-05-24
        • 2014-02-28
        • 2013-06-04
        • 2021-03-22
        • 1970-01-01
        • 1970-01-01
        • 2016-12-29
        • 2018-05-15
        • 2014-05-21
        相关资源
        最近更新 更多