-6

该功能旨在根据时间对游戏中的高分板进行排序。

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”错误。

任何人都可以帮忙吗?

4

2 回答 2

2

第一个错误是因为

i < this.inputArray.length - 1

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

第二个错误是因为

continue;

表示再次开始循环,进行下一次迭代。这意味着之后的所有内容都是continue无法访问的死代码。编译器试图保护您免受错误的影响。

于 2014-01-23T00:42:54.377 回答
0

不可达语句:你分配 i = 0,然后继续,并把 i++ 放在最后,i 永远不会是 0,所以 if 子句是不可达的

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

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

(取自 Oracle 文档)

于 2014-01-23T00:46:04.873 回答