处理数组的运行时错误

时间:2016-03-11 21:14:39

标签: java arrays loops for-loop

以下代码在eclipse中运行得非常好,但是当我在用于我的作业的不同IDE上运行它时,它会抛出运行时错误消息。任何想法或想法为什么?感谢。

    final String sentence;
    int mask = sentence.contains("abcd") ? 1 : 0;
    mask |= sentence.contains("efgh") ? 2 : 0;
    mask |= sentence.contains("ijkl") ? 4 : 0;
    switch (mask) {
    case 1:
    case 1 | 2:
    case 1 | 4:
    case 1 | 2 | 4:
        // do command a
        break;
    case 2:
    case 2 | 4:
        // do command b
        break;
    case 4:
        // do command c
        break;
    default:
        // do command d
    }
}

这是输出:

7 9 11 10

10 11 9 7

2 个答案:

答案 0 :(得分:0)

你的第二个循环应该是:

  for (i = NUM_VALS -1; i >=0; i--) {...

答案 1 :(得分:0)

你的第二个for循环是一个无限循环 - 你从一个小于NUM_VALS的值开始然后继续减少它(好吧,至少它理论上是 - 正如你所注意到的,它失败了最终ArrayIndexOutOfBoundException。简而言之,你结束条件是错误的 - 只要i是非负的,循环应该迭代:

for (i = NUM_VALS - 1; i >= 0; i--) {
    System.out.print(courseGrades[i] + " ");
}