java方法总是报缺少返回语句!

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:54:57
下面这段代码是因为不知道如何返回对应的char的哈希吗值所以自己写的方法,传一个char然后从数组中搜寻对应字符,根据下标返回哈希吗值!蠢了一点,呵呵!
public static int getHashCode(char a){
int result=0;
int flag=0;
int subscript=0;
char[] zu1=new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char[] zu2=new char[]{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
for(int i=0;i<zu1.length;i++){
if(a==zu1[i]){
flag=0;
subscript=i;
}
if(a==zu2[i]){
flag=1;

把else if(flag==1)中的if(flag==1)去掉即可

return subscript+1+65;
return 0;//这里加return 0;
}
}

在最后再加一个return 0;,这是因为咱们知道flag只会为1或 0,但是编译器不知道,它不知道那两个return语句必有一个会执行,那只好给它加一个永远不会执行的返回语句了。

你必须在语法上保证有一个有return执行,把else if改成else就可以了。

改成:

public static int getHashCode(char a){
int flag=0;
int subscript=0;
char[] zu1=new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char[] zu2=new char[]{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V',