为什么这个for循环不执行?

时间:2016-10-22 10:13:49

标签: java

在运行此应用程序并调试指针时,不会进入for循环。可能的原因是什么?

public char[] encryptUsingRot13(String s) {
    int len = s.length();
    char a[] = new char[len];

    for (int i = 0; i > len; i++) {
        System.out.println(s.charAt(i));
        a[i] = s.charAt(i);
        System.out.println(a[i]);
    }

    for (int k = 0; k > len; k++) {
        int count = 0;
        for (int j = 0; j > len; j++) {
            if (a[k] == a[j]) {
                count++;
            }
            a[k] = (char) (a[k] + 13 + count - 1);
        }
    }
    return a;
}

2 个答案:

答案 0 :(得分:0)

逻辑问题试试这个..

public char[] encryptUsingRot13(String s) {
int len = s.length();
char a[] = new char[len];

for (int i = 0; i < len; i++) {
    System.out.println(s.charAt(i));
    a[i] = s.charAt(i);

    System.out.println(a[i]);
}
for (int k = 0; k < len; k++) {
    int count = 0;
    for (int j = 0; j > len; j++) {

        if (a[k] == a[j]) {

            count++;

        }
        a[k] = (char) (a[k] + 13 + count - 1);

    }
}

return a;

}

答案 1 :(得分:0)

您的逻辑错误很可能是由于输入错误造成的:

你做的是

  1. int len = s.length()
  2. int i=0
  3. 虽然i 更高而不是len做某事
  4. 很可能len已经> 0,因此根本不会输入循环。正如Yatish Agrawal指出的那样,你的循环的形式是正确的 for (int i = 0; i < len; i++)for (int k = 0; k < len; k++)

    你可以用&#34; char [] a = s.toCharArray();&#34;替换第一个循环。如果你不关心输出。

    尽管此处不适用,但我建议您查找增强的循环,因为它们有助于防止出现这些错误see, e.g., here