[英]The compare line doesn't work, why? How can I fix it?
public static void main(String[] args) {
int[] my_Numbers= {1789, 2035, 1899, 1456, 2013,
1458, 2458, 1254, 1472, 2365,
1456, 2165, 1457, 2456};
for(int i=0; i < my_Numbers.length;){
if (Integer.compare(my_Numbers[i],my_Numbers[(i+1)])==1) {
int x = my_Numbers[i];
my_Numbers[i] = my_Numbers[i+1];
my_Numbers[i+1] = x;
i=0;
}else {i++;}
}
String result= my_Numbers.toString();
System.out.println(result);
}
嘗試這個:
public static void main(String[] args) {
int[] my_Numbers= {1789, 2035, 1899, 1456, 2013,
1458, 2458, 1254, 1472, 2365,
1456, 2165, 1457, 2456};
for(int i=0; i < my_Numbers.length-1;){
if (Integer.compare(my_Numbers[i],my_Numbers[(i+1)])==1) {
int x = my_Numbers[i];
my_Numbers[i] = my_Numbers[i+1];
my_Numbers[i+1] = x;
i=0;
}else {i++;}
}
String result= Arrays.toString(my_Numbers);
System.out.println(result);
}
首先在執行 (i+1) 之前添加 if 條件,因為當 i 將是最后一個元素時,它會給你 arrayindexoutof 綁定異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.