Namensliste

Java-Star

Aktives Mitglied
Hallo!

Warum läsuft dieses Programm nicht?:

Java:
package Paket16;

import javax.swing.*;

public class Klasse16 {

	public static void main(String[] args) 
	{
		String[] namensliste = new String[0];
		
		String anzahl = JOptionPane.showInputDialog
		("Wie viele Namen willst du eintragen?");
		int anzahlR = Integer.parseInt(anzahl);
		
		for (int i = 0; i <= anzahlR; i++)
		{
			String namen = "";
			namen = JOptionPane.showInputDialog
			("Gib einen Namen ein.");
			namensliste[i] = (String) namen;
		}
		
		System.out.println ("Hier die Namensliste:");
		System.out.println ("");
		
		anzahlR = 0;
		for (int i2 = 0; i2 <= anzahlR; i2++)
		System.out.println (namensliste[i2]);
	}
}

Also es ist zwar kein Fehler drin, aber was mit so ner Debug-Meldung...
Dieser Befehl wird dann immer markiert:
Java:
namensliste[i] = (String) namen;

ist der falsch, oder kann der nicht ausgeführt werden..? ???:L

Helft mir!
Danke im Vorraus!!!:D

Ps: Mit Arrays und Zählschleifen komm ich noch nicht so gut aus, daher, verzeit mir, wenn ich einen unlogischen Code habe. :bahnhof:
 

Pentalon

Bekanntes Mitglied
Hi Star

Du deklarierst ein Array namensliste mit 0 Einträgen ?
Danach fragst Du wieviele Einträge der User machen möchte.

Es wäre besser, die Arraydeklaration nach der Frage der Anzahl zu machen, denn da kennst Du die Grösse des gewünschten Arrays und kannst es entsprechend deklarieren.

Java:
import javax.swing.*;

public class Test8 {
 
    public static void main(String[] args) 
    {
        String anzahl = JOptionPane.showInputDialog
        ("Wie viele Namen willst du eintragen?");
        int anzahlR = Integer.parseInt(anzahl);
        
        String[] namensliste = new String[anzahlR];   // Besser hier das Array deklarieren
        
        for (int i = 0; i < anzahlR; i++)
        {
            String namen = "";
            namen = JOptionPane.showInputDialog
            ("Gib einen Namen ein.");
            namensliste[i] = namen;
        }
        
        System.out.println ("Hier die Namensliste:");
        System.out.println ("");
        
        // anzahlR = 0;		// Warum ?????
        for (int i2 = 0; i2 < anzahlR; i2++)
        System.out.println (namensliste[i2]);
    }
}

PS: Eine for-Schleife die ein Array ausgibt läuft immer solange x < anzahl und nicht x <= anzahl, da ein Array mit 3 Elementen von 0-2 geht.
PSS: Wenn Du Deine Variable anzahlR, in der die Anzahl der Namen bzw. die Feldgrösse steht, auf 0 setzt, wird die anschliessende Schleife ein Problem haben, die korrekte Anzahl auszugeben.
PSSS: Den Cast namensliste = (String) namen; brauchst Du nicht, er macht aber auch nichts negatives.

Pentalon
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben