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
答案 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");
}