排序问题(不是声明)

时间:2014-01-23 00:33:37

标签: java netbeans-7.4

该功能用于根据时间对游戏中的高分榜进行排序。

public void sort()
{
    boolean unsorted = true;
    int i;

    for ( ; unsorted; i < this.inputArray.length - 1)
    {  
        unsorted = false;
        i = 0; continue;
        if (Integer.parseInt(this.inputArray[i][1]) <= Integer.parseInt(this.inputArray[(i + 1)][1]))
        {
            int tempTime = Integer.parseInt(this.inputArray[i][1]);
            String tempName = this.inputArray[i][0];
            this.inputArray[i][1] = this.inputArray[(i + 1)][1];
            this.inputArray[i][0] = this.inputArray[(i + 1)][0];
            this.inputArray[(i + 1)][1] = String.valueOf(tempTime);
            this.inputArray[(i + 1)][0] = String.valueOf(tempName);
            unsorted = true;
        }
        i++;
    }
}

问题是,IDE在'for'循环中抛出“not a statement”错误,在'if'上抛出“unreachable statement”错误。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

第一个错误是因为

i < this.inputArray.length - 1

不是你可以执行的东西 - 也就是说,它不是一个声明。但是for循环括号中的第三部分是将在循环的每次迭代结束时执行的语句。

第二个错误是因为

continue;

表示在下一次迭代时再次启动循环。这意味着continue之后的所有内容都是永远无法达到的死代码。编译器试图保护您免受错误的影响。

答案 1 :(得分:0)

无法到达的声明: 你指定i = 0,然后继续,并把i ++放在最后,我永远不会是0,所以if子句是不可达的

您的for循环语法也不正确:

for (initialization; termination;
     increment) {
    statement(s)
}
  • 初始化表达式初始化循环;当循环开始时,它被执行一次。
  • 终止表达式的计算结果为false,循环终止。
  • 每次迭代循环
  • 后调用递增表达式

(取自Oracle doc)