2016-08-22 159 views
-5
public static void main(String[]args){ 
    //this program is to print the index values of an array in reversed order using 
    //another array 
    int[]array1={5,6}; 
    int[]array2= new int[2]; 
    int i; 
    int j=1; 

    for(i=0;i<=1;i++){ 

     array1[i]=array2[j]; 
     j--; 

    } 
    for(int num: array1) 
     System.out.println(num); 

} 

我沒有通過顛倒array1的索引值並將其存儲在array2中來獲取array2的輸出。有人可以告訴我原因嗎?Java數組,將一個數組的值顛倒爲另一個

+0

你不打印出來'array2'? – tkausl

+0

因爲在Java中,賦值將**右側**的值放入**左側**的變量中。在循環中查看您的賦值語句。 – RealSkeptic

回答

2

有兩個錯誤:

public static void main(String[] args) { 
    int[] array1 = {5, 6}; 
    int[] array2 = new int[array1.length]; 
    int i; 
    int j = array1.length -1; 
    for (i = 0; i < array1.length; i++) { 
     array2[i] = array1[j]; // Fixed mistake 
     j--; 
    } 
    for (int num : array2) { // fixed mistake 
     System.out.println(num); 
    } 
} 
2

的代碼有兩個錯誤:

  • 你變更的array1代替array2
  • 你印刷array1,原始陣列,而不是array2的還原數組值。

更改代碼

for(i=0;i<=1;i++){ 

    array1[i]=array2[j]; 
    j--; 

} 
for(int num: array1) 
    System.out.println(num); 

下面的代碼(我還添加了不同的間距是更可讀)

for (i = 0; i <= 1; i++) { 
    array2[i] = array1[j]; 
    j--; 
} 
// Iterate over array2 
for (int num: array2) { 
    System.out.println(num); 
} 
0

有一些你錯過了的東西。

  1. 轉讓array1[i]=array2[j];應該是另一種方式。
  2. 該循環應重複執行array2for(int num: array1)應該是for(int num: array2)

在這裏,我固定它給你:

public static void main(String[] args) { 

     int[] array1 = { 5, 6 }; 
     int[] array2 = new int[2]; 
     int i; 
     int j = 1; 

     for (i = 0; i <= 1; i++) { 

      array2[i] = array1[j]; 
      j--; 

     } 
     for (int num : array2) 
      System.out.println(num); 
    } 
相關問題