数组排序测试

时间:2014-04-15 00:08:52

标签: java sorting

public static void main(String[] args) {
    boolean sorted=true;
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the length of your array then enter the elements of your array: ");
    int length=scan.nextInt();
    int[] array=new int[length];
    for (int i=0;i<length;i++){
        array[i]=scan.nextInt();
    }
    for (int i=0;i<length-1;i++){
        if (array[i]>array[i+1]){
            sorted=false;
        }
    }
    if (sorted=true){
        System.out.println("The list is already sorted");
    }
    else {
        System.out.println("The list is not sorted");
    }

}

我必须编写一个程序来检查数组是否按类排序。这是我目前的代码。我无法弄清楚为什么代码不会进入第二个for循环中的if语句,即使条件为真。

我用于参赛的考试日期是:8 10 1 5 16 61 9 11 1

3 个答案:

答案 0 :(得分:0)

问题不在于循环,而在于最后一个条件:

 if (sorted = true)

应该是

 if (sorted == true)

答案 1 :(得分:0)

它正在进入循环。问题如下:

if (sorted=true){ // <-- here
        System.out.println("The list is already sorted");
    }
    else {
        System.out.println("The list is not sorted");
    }

sorted=true未检查sorted是否为true,实际上每次都会将其设置为true。请改用sorted==true

答案 2 :(得分:0)

执行此更改:

for (int i=0;i<length-1;i++){
    if (array[i]>array[i+1] && sorted) { //you don't need loop all array
        sorted=false;
    }
}

if (sorted==true) { //sorted == true for comparison
    System.out.println("The list is already sorted");
}
else {
    System.out.println("The list is not sorted");
}