2016-05-24 7 views
-1

Bin nicht put raus, um die arrayElements Wende- und diese Störung erhalte:Benötigen Sie Hilfe die arrayElements in Umkehrung und bekommen Ausnahme

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 
    at testcases.ReveringInput.main(ReveringInput.java:20). 

Hier ist mein Code

package testcases; 
import java.util.Scanner; 
public class ReveringInput { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Enter the Size of an Array"); 
     int Size = in.nextInt(); 
     int [] array = new int[Size]; 
     System.out.println("Enter the elements of an Array"); 
     int i; 

     for(i=0; i< Size ; i++) 
     { 
      array [i] = in.nextInt(); 
     } 

     for(i= Size ; i <= Size ; i--) 
     { 
      System.out.println(array[i]); 
     } 
    } 
} 
+2

'i = Größe; i <= Größe, aber es gibt kein Element mit dem Index "Größe", verwende "i = Größe - 1; i> 0' oder besser, benutze erweiterte for-loop 'für (int x: array)' –

+2

Deine zweite Schleife beginnt mit 'i = Size' und' array [Size] 'existiert nicht. – Berger

+0

'für (i = Größe; i <= Größe; i -)' ... Sie iterieren absichtlich bis zum Unterlauf? "Ja wirklich?" – Tom

Antwort

2

Sie schrieb

for(i= Size ; i <= Size ; i--)

Ein Array initialisiert mit der Größe Size geht nur von 0 den ganzen Weg bis Size - 1 so ändern Sie es zu i=Size -1 dann schrieb man i <= Size, die es immer sein wird, so wird es unendlich laufen diesen Code, der nicht gut ist, müssen Sie es zu i>=0 ändern stattdessen sollte es nach diesen arbeiten

Modifikationen
+0

Oawsome !!!! es funktionierte Saloomi, das ist für die große Hilfe, aber können Sie mir helfen, die Logik hinter diesem plzz zu verstehen .... –

+0

@chandramouli, wenn Sie meine Antwort mochten, können Sie meine Antwort als die Lösung markieren. Der Grund, warum du es in 'i> = 0 änderst, ist, weil du vom Ende bis zum ersten Element (0) anfangen willst. – saloomi2012

0
Scanner in = new Scanner(System.in); 
System.out.println("Enter the Size of an Array"); 
int size = in.nextInt(); 
int[] array = new int[size]; 
System.out.println("Enter the elements of an Array"); 

for(int i = 0; i < size; i++) 
{ 
    array[i] = in.nextInt(); 
} 

for(int i = size-1; i > -1; i--) 
{ 
    System.out.println(array[i]); 
} 

Um die zweite Schleife für erläutern:

  • int i = size-1: i von dem höchsten Feldindex starten. Zum Beispiel, wenn size == 5, dann array[4] gibt Ihnen das letzte Element.
  • i > -1: Führen Sie die Schleife, bis i 0 oder positiv ist.
  • i--: Verringern Sie i um eins nach jeder Iteration.

Hoffe, das hilft!

+0

Danke Daniel, es ist sehr hilfreich ... –

Verwandte Themen