2016-08-22 5 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); 

} 

Ich bin nicht die Ausgabe von array2 bekommen durch den Indexwert von array1 Wende- und es in array2 speichern. Kann mir jemand den Grund sagen?Java-Arrays, Rückwärts fahren Werte eines Arrays zu einem anderen

+0

Sie nicht drucken 'array2' ?! – tkausl

+0

Da in Java die Zuweisung den Wert auf der ** rechten ** Seite in die Variable auf der ** linken ** Seite setzt. Sehen Sie Ihre Zuweisungsanweisung in der Schleife. – RealSkeptic

Antwort

2

Es gibt zwei Fehler:

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

Der Code hat zwei Fehler:

  • Sie geänderte Werte von array1 statt array2
  • Sie gedruckt array1, das ursprüngliche Array, nicht array2 die rückgängig gemacht Array.

Code ändern

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

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

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

dem folgenden Code (Ich habe auch einen anderen Abstand, die besser lesbar ist)

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

Es gab ein paar Dinge, die Sie vermisst haben.

  1. Die Zuordnung array1[i]=array2[j]; sollte umgekehrt sein.
  2. Die Schleife sollte über array2 iterieren. for(int num: array1) sollte for(int num: array2) sein.

Hier, ich regelte es für Sie:

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); 
    } 
Verwandte Themen