Switch Statement在另一个类的方法中

时间:2014-05-17 03:59:33

标签: java class methods 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;

    }
}

PS。这是在另一个班级完成的 我希望能够在主类中使用此方法,输入一个字母,并返回该字母的数字/索引。 但我一直得到:这个方法必须返回int类型的结果。

非常困惑。请帮忙。 THX。

2 个答案:

答案 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;
}