2016-04-17 11 views
0

Also ich bin relativ neu in Java Sprache, aber ich versuche, besser zu werden, so dass ich mehr Fähigkeiten zu meinem Lebenslauf hinzufügen kann. Ich konzentriere mich derzeit auf Arrays und schreibe ein Programm, das ich mit einem Barcode-Scanner oder einer Tastatur verwenden kann, um die Credits von Cultural Enrichment im Auge zu behalten (inspiriert von der Notwendigkeit meiner Schule). Ich dachte, es könnte ein ordentliches Startprogramm sein, um mich mit dem Array-Einsatz zu befassen, aber ich habe ein Problem mit den beiden Arrays. Sie überschreiben die eingegebenen neuen Werte. Ich habe gegoogelt und Dinge versucht, aber ich bin immer noch nicht in der Lage, sie dazu zu bringen, richtig zu arbeiten, und würde gerne erfahrenere Programmierer um Hilfe bitten. Ich weiß, dass meine Ausgabemethode eher faul ist, aber es wird für das, was ich für das Ausgabeformat sehen möchte.Meine Java-Arrays überschreiben vorhandene Elemente

Hier ist mein Code:

public static void main(String []args)throws InputMismatchException 
{ 
    Scanner user_input = new Scanner(System.in); 

    int n = 0; 
    String Name; 
    int CEU; 
    String[] users = new String[5]; 
    String[] numbers = new String[6]; 
    Object end = null; 
    Object print = null; 

    System.out.print("Enter value for CEU: "); 
    CEU = user_input.nextInt(); 

    while (n >= 0) 
    {   

     /* Loop*/ 
     System.out.println("Scan ID or type **end,print** "); 
     numbers[n] = user_input.next(); 

     if ("end".equals(users[n])) 
     { 
     System.out.print("Program terminated."); 
     System.exit(0); 
     } 

     if ("print".equals(numbers[n]))   
     { 

     System.out.print("CEUs: " + CEU); 
     System.out.print(" ID#: " + numbers[0]); 
     System.out.print(" Name: " + users[0]); 

     System.out.print("\nCEUs: " + CEU); 
     System.out.print(" ID#: " + numbers[1]); 
     System.out.print(" Name: " + users[1]); 

     System.out.print("\nCEUs: " + CEU); 
     System.out.print(" ID#: " + numbers[2]); 
     System.out.print(" Name: " + users[2]); 

     System.out.print("\nCEUs: " + CEU); 
     System.out.print(" ID#: " + numbers[3]); 
     System.out.print(" Name: " + users[3]); 

     System.out.print("\nCEUs: " + CEU); 
     System.out.print(" ID#: " + numbers[4]); 
     System.out.print(" Name: " + users[4]); 

     } 
     else 
     { 

     System.out.print("Enter Name: "); 
     users[n] = user_input.next(); 

     } 
    } 
} 

Antwort

1

Innerhalb der Schleife Sie n erhöhen müssen, da es immer 0. Die Verwendung ist: n ++; in der letzten Codezeile innerhalb der while-Schleife.

+0

Ah ich sehe jetzt, Vielen Dank jetzt funktioniert es –

+0

Gut zu wissen, dass ich Ihnen helfen könnte, Ihr Problem zu lösen. Kannst du bitte meine Antwort auffrischen? Vielen Dank – goncalopinto

0

n wird nicht inkrementiert. Da sich n nie ändert, überschreibt es bei jeder Ausführung der Schleife den gleichen Teil des Arrays. Es scheint auch so, als ob du später einen fehlerhaften Fehler bekommst, weil ich weiter zunehmen werde. Bald wird es größer sein als der maximale Index des Zahlen-Arrays, daher wird der Fehler zurückgegeben. Sie sollten versuchen, Code hinzuzufügen, der den Fehler verhindert.

Verwandte Themen