嗨,我是編程新手,今天我正在編寫一個Java數組任務的代碼,並且在開始時我試圖測試我已經完成了什麼,並且在第一個for循環(數組讀取)程序不停止讀一個數字,即使我已經輸入一個數字(n)的長度。請幫忙 ?因爲一旦執行for循環if條件裏面,然後changed
設置爲true
和它的價值從未改變爲假導致無限循環由while循環做Java數組讀取循環永不結束?
import java.util.Scanner;
public class ReadTwoElementsForArrayAndSum {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("Please enter N element:");
int n = in.nextInt();
System.out.print("Please enter K element, for k < N: ");
int k = in.nextInt();
int[] arrayN = new int[n];
System.out.print("Please enter N numbers for the array: ");
for(int i = 0; i < arrayN.length; i++) {
arrayN[i] = in.nextInt();
}
boolean changed = false;
do {
int temp = 0;
for(int i = 0; i < (arrayN.length-1); i++) {
if(arrayN[i] > arrayN[i+1]){
temp = arrayN[i];
arrayN[i] = arrayN[i+1];
arrayN[i+1] = temp;
changed = true;
}
}
} while (changed);
for(int i = 0; i < arrayN.length; i ++) {
System.out.printf("%d", arrayN[i]);
System.out.print(k);
}
in.close();
}
}
是的的確控制不斷進入這一行正確執行'改變=真;'如果它真的會導致do-while永遠運行 – Vihar
如果你想對數組進行排序,你可以使用Arrays.sort(arrayN);' – kaykay