我有以下代码:
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:错误:缺少return语句 } ^
我可能已经解释了这个错误,但为什么我的类BinaryDecode有甚至需要一个return语句?代码还有其他问题吗?
注意:我在java中相当新,如果我的代码中有任何明显的错误,那就很抱歉。
答案 0 :(得分:5)
类不需要return语句;它是parseDigit
函数,您声明它返回int
。当你说过它时,有可能不返回值是错误的。
答案 1 :(得分:3)
该类不需要返回语句,parseDigit
方法。在其签名中,它声称返回int
。你做对该方法有一个return
语句,但因为它在switch语句中,所以不能保证会发生。
答案 2 :(得分:2)
问题与您的parseDigit
课程有关。
如果大小写为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;
}