Switch Statement在另一个类的方法中

-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类型的结果.

非常困惑.请帮忙.谢谢.

awk*_*ksp 5

这是一个需要考虑的问题:如果输入的字母不是您描述的案例之一,会发生什么?

虽然可能知道您只是用字母输入,但是编译器不知道这一点,并且因为如果您定义的一个案例未被命中,它无法弄清楚要返回的内容,因此会发出错误.你需要放入一个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)