试图编写程序 - 找不到符号

时间:2015-01-27 11:57:20

标签: java sorting

我是第一年的IT学生,并尝试使用代码为作业编写程序;

public class SortaPP {

    public static void main(String[] args) {
        int[]arraysOfInts = {42,97,3,689,14,1076,3000,8,632,327,976,4215};

        for(int i=arrayOfInts.length;--i>=1;){   

            for(int j = 0;j<i;j++){
                if(arrayOfInts[j] > arrayOfInts[j+1]){
                    int temp = arrayOfInts[j];
                    arrayOfInts[j] = arrayOfInts[j+1];
                    arrayOfInts[j-1] = temp;

                    for (int i = 0; i < arrayOfInts.length; i++){
                        System.out.print(arrayOfInts[i]+"");
                        System.out.println();
                    }   
                }
            }
        }
    }                
}

我一直收到错误:找不到符号,是否有人可以帮助我?

7 个答案:

答案 0 :(得分:2)

正如jbutler告诉你的那样,如果没有一些解释,很难理解你要做什么。

但首先你得到一个拼写错误:你声明int数组arraysOfInts但使用arrayOfInts。 's'去了哪里?

其次,为什么你的第三个循环在这里更重要:你不能在同一个上下文中使用相同的变量名:我在你的第一个循环中声明,你不能再使用它使用另一个字母。< / p>

之后你将不得不更好地研究你的算法,你会遇到一些我认为的IndexOutOfBoundExceptions。

答案 1 :(得分:1)

  

这只是一个错字。

Change the line:
    int[] arraysOfInts  
to  
    int[] arrayOfInts

答案 2 :(得分:0)

使用以下代码: -

import java.util.Arrays;

公共类SortaPP {

public static void main(String[] args) {
    int[] arraysOfInts = { 42, 97, 3, 689, 14, 1076, 3000, 8, 632, 327,
            976, 4215 };

    Arrays.sort(arraysOfInts);

    for (int k = 0; k < arraysOfInts.length; k++) {
        System.out.println(arraysOfInts[k]);
    }
}

}

答案 3 :(得分:0)

public static void main(String[] args) {
    //change the name of your variable (you are using arraysOfInts)
    int[] arrayOfInts = {42,97,3,689,14,1076,3000,8,632,327,976,4215};

    //this kind of loop must have 3 arguments
    //without the 'arrayOfInts.length - 1' you can have one ArrayIndexOutOfBoundsException
    for(int i = arrayOfInts.length - 1; i >= 1; i--){   

        for(int j = 0; j < i; j++){
            if(arrayOfInts[j] > arrayOfInts[j+1]){
                int temp = arrayOfInts[j];
                arrayOfInts[j] = arrayOfInts[j+1];
                arrayOfInts[j-1] = temp;

                //you already declared one int i variable
                for (int x = 0;x < arrayOfInts.length; x++){
                    System.out.print(arrayOfInts[x] + "");
                    System.out.println();
                }   
            }
        }
    }
}   

答案 4 :(得分:0)

arrayOfInts不存在,它没有被宣布。 你可能想放arraysOfInts

;)只是一个错字

答案 5 :(得分:-1)

它只是'arrayOfInts'中的一个错字错误。

public class SortaPP {

public static void main(String[] args) {
    // change to arraysOfInts
    int[] arraysOfInts = {42,97,3,689,14,1076,3000,8,632,327,976,4215};

    for(int i=arraysOfInts.length;--i>=1;){   

        for(int j = 0;j<i;j++){
            if(arraysOfInts[j] > arraysOfInts[j+1]){
                int temp = arraysOfInts[j];
                arraysOfInts[j] = arraysOfInts[j+1];
                arraysOfInts[j-1] = temp;
               // You will get ArrayIndexOutOfBoundsException: -1

                for (int k = 0; k < arraysOfInts.length; k++){
                    System.out.print(arraysOfInts[k]+"");
                    System.out.println();
                }   
            }
        }
    }
}                
}

答案 6 :(得分:-1)

1)建议阅读一些关于算法的书籍,以便开始Data Structures and Algorithms

2)正如在评论数组中所说的 s OfInts不是相同的arrayOfInts

3)又一次,你的第三个for

 for (int i = 0; i < arrayOfInts.length; i++){
   System.out.print(arrayOfInts[i]+"");
   System.out.println();
 }

1。你会收到错误:Duplicate local variable i 2.你会得到:java.lang.ArrayIndexOutOfBoundsException

所以如果你想使用第三个:

 for (int k = 0; k < arrayOfInts.length-1; k++){
     System.out.print(arrayOfInts[k]+"");
     System.out.println();
 }  

4)arrayOfInts[j-1]非常糟糕,因为如果arrayOfInts[j] > arrayOfInts[j+1]true时会返回j == 0,您将获得java.lang.ArrayIndexOutOfBoundsException:,因为没有带-1索引的元素< / p>