for循环没有在方法中运行

时间:2014-03-10 17:28:52

标签: java android for-loop return switch-statement

由于某些原因,我的for循环没有运行,我似乎无法找出原因。它一直跳到return语句。谢谢。

 public char[] palindromeCheck(char[] original) {

    char[] reversed = new char[original.length];

    for (int i = original.length; i <0; i--) {
        switch (original[i]){
            case 'A':
                original[i] = Character.toLowerCase(original[i]);
                break;
            case 'E':
                original[i] = Character.toLowerCase(original[i]);
                break;
            case 'I':
                original[i] = Character.toLowerCase(original[i]);
                break;
            case 'O':
                original[i] = Character.toLowerCase(original[i]);
                break;
            case 'U':
                original[i] = Character.toLowerCase(original[i]);
                break;
            default:
                original[i] = Character.toUpperCase(original[i]);
                break;
        }
        reversed[i] = original[i];
    }

    return reversed;
}

6 个答案:

答案 0 :(得分:6)

for (int i = original.length; i <0; i--)

条件始终为false,因为长度总是> = 0.由于您要为数组建立索引,您可能希望从length-1循环到0,如

for (int i = original.length - 1; i >= 0; i--)

答案 1 :(得分:1)

变化:

for (int i = original.length; i <0; i--) {

为:

for (int i = original.length; i >= 0; i--) {

否则它只是不进入循环,因为长度大于零,条件总是计算为false

答案 2 :(得分:1)

变化:

for (int i = original.length; i < 0; i--) {

为:

for (int i = original.length; i >= 0; i--) {

其他帖子正确解决了这个问题,但更改了您的条件,因此循环不会达到0.如果您想要达到0,请使用上面的>=

答案 3 :(得分:0)

可能你在for循环中写了错误的条件,总是假的

for (int i = original.length; i <0; i--)

长度总是> = 0.我认为你应该写i > 0

答案 4 :(得分:0)

for循环使结束表达式反转。

public char[] palindromeCheck(char[] original) {

    char[] reversed = new char[original.length];

        for (int i = original.length; i>0; i--) {
            switch (original[i]){
                case 'A':
                    original[i] = Character.toLowerCase(original[i]);
                    break;
                case 'E':
                    original[i] = Character.toLowerCase(original[i]);
                    break;
                case 'I':
                    original[i] = Character.toLowerCase(original[i]);
                    break;
                case 'O':
                    original[i] = Character.toLowerCase(original[i]);
                    break;
                case 'U':
                    original[i] = Character.toLowerCase(original[i]);
                    break;
                default:
                    original[i] = Character.toUpperCase(original[i]);
                    break;
            }
            reversed[i] = original[i];
        }

        return reversed;
    }

答案 5 :(得分:0)

在For循环中编写条件时,需要小心。 以下代码适用于您的情况。

 for (int i = original.length; i >0; i--) {
//Your code
}

将来,当您处于调试模式时。学习如何识别这些错误。在这种情况下,您会注意到控件直接跳出for循环并分析循环内的每个单独条件。