public int alphCheck(char check){
switch(check){
case 'a':
return 1;
break;
case 'b':
return 2;
break;
case 'c':
return 3;
break;
case 'd':
return 4;
break;
case 'e':
return 5;
break;
case 'f':
return 6;
break;
case 'g':
return 7;
break;
case 'h':
return 8;
break;
case 'i':
return 9;
break;
case 'j':
return 10;
break;
case 'k':
return 11;
break;
case 'l':
return 12;
break;
case 'm':
return 13;
break;
case 'n':
return 14;
break;
case 'o':
return 15;
break;
case 'p':
return 16;
break;
case 'q':
return 17;
break;
case 'r':
return 18;
break;
case 's':
return 19;
break;
case 't':
return 20;
break;
case 'u':
return 21;
break;
case 'v':
return 22;
break;
case 'w':
return 23;
break;
case 'x':
return 24;
break;
case 'y':
return 25;
break;
case 'z':
return 26;
break;
}
}
PS。这是在另一个班级完成的 我希望能够在主类中使用此方法,输入一个字母,并返回该字母的数字/索引。 但我一直得到:这个方法必须返回int类型的结果。
非常困惑。请帮忙。 THX。
答案 0 :(得分:5)
这里有一个值得考虑的问题:如果输入的字母不是您描述的案例之一,会发生什么?
虽然你可能知道你只是用字母喂食,但是编译器并不知道这一点,并且因为它无法弄清楚如果一个人返回什么您定义的案例未被命中,因此会发出错误。您需要输入default
个案例,因此编译器知道该方法可以保证返回一些内容:
switch(check) {
case 'a':
...
default:
// return something or maybe print/throw an error
}
更好的解决方案可能是使用chars
只是不同形式的数字这一事实。例如,'a'
等价于整数97
(查看表here以获取字符表及其ASCII数字等价物)。所以你可以做一个数学技巧来得到相同的结果:
public int alphCheck(char check) {
return check - 'a' + 1;
}
答案 1 :(得分:1)
你必须提供类似return 0的返回类型;在switch语句的末尾。默认情况下:case
switch(check) {
..
default:
return 0;
}