2016-08-22 111 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); 
    } 
相关问题