-3 java methods class switch-statement
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;
}
}
Run Code Online (Sandbox Code Playgroud)
PS.This是在另一个类中完成的,我希望能够在主类中使用此方法,输入一个字母,并返回该字母的数字/索引.但我一直得到:这个方法必须返回int类型的结果.
非常困惑.请帮忙.谢谢.
这是一个需要考虑的问题:如果输入的字母不是您描述的案例之一,会发生什么?
虽然您可能知道您只是用字母输入,但是编译器不知道这一点,并且因为如果您定义的一个案例未被命中,它无法弄清楚要返回的内容,因此会发出错误.你需要放入一个defaultcase,所以编译器知道该方法保证返回一些东西:
switch(check) {
case 'a':
...
default:
// return something or maybe print/throw an error
}
Run Code Online (Sandbox Code Playgroud)
对此更好的解决方案可能是使用chars只是不同形式的数字的事实.例如,'a'相当于整数97(请在此处查看表格中的字符表及其ASCII数字等价物).所以你可以做一个数学技巧来得到相同的结果:
public int alphCheck(char check) {
return check - 'a' + 1;
}
Run Code Online (Sandbox Code Playgroud)