Array umgekehrt ausgeben

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Java:
    public static void main(String[] args) {
    String name; //Variable name

    String liste[]=new String[109]; //Array

    for(int i=0; i<=109; i++){
    System.out.println("Geben Sie Name ein: "); // Namen werden eingegeben
    name=Eingabe.readString(); //Name wird gelesen
  
    if(name.equals(".")||name.equalsIgnoreCase("Ende")){
    System.out.println("Eingabe beendet!");
    System.out.println("");
    for(int c=0; c<=liste.length; c++){
    System.out.printf( liste[c]);
    }
    break;
    }
else{
        liste[i]=name;
    }
    }

}
}

Was muss ich tun, damit Array die Liste umgekehrt ausgibt??? Danke im Voraus
 
Java:
	public static void main(String[] args) {
		String name; //Variable name

		String liste[]=new String[109]; //Array

		for(int i=0; i<=109; i++){
			System.out.println("Geben Sie Name ein: "); // Namen werden eingegeben
			name=Eingabe.readString(); //Name wird gelesen

			if(name.equals(".")||name.equalsIgnoreCase("Ende")){
				System.out.println("Eingabe beendet!");
				System.out.println("");
				for(int c=liste.length-1; c<=0; c--){
					System.out.printf( liste[c]);
				}
				break;
			}
			else{
				liste[i]=name;
			}
		}
 
Java:
	public static void main(String[] args) {
		String name; //Variable name

		String liste[]=new String[109]; //Array

		for(int i=0; i<=109; i++){
			System.out.println("Geben Sie Name ein: "); // Namen werden eingegeben
			name=Eingabe.readString(); //Name wird gelesen

			if(name.equals(".")||name.equalsIgnoreCase("Ende")){
				System.out.println("Eingabe beendet!");
				System.out.println("");
				for(int c=liste.length-1; c<=0; c--){
					System.out.printf( liste[c]);
				}
				break;
			}
			else{
				liste[i]=name;
			}
		}

Habe es genau so gemacht geht aber leider nicht irgendwie wird jetzt die Liste überhaupt nicht mehr angezeigt?
 
Java:
for (int c=liste.length-1; c>=0; c--){
    System.out.printf( liste[c]);
}
Das [c]c<=0[/c] war falsch.
Übrigens ist auch die Grenze deiner ersten for-Schleife falsch gesetzt: Es muss [c]i<109[/c] heißen (oder noch besser: [c]i<=liste.length-1[/c]).
 
Java:
    for(int i=0;i<109; i++){
    System.out.println("Geben Sie Name ein: "); // Namen werden eingegeben
    name=Eingabe.readString(); //Name wird gelesen
  
    if(name.equals(".")||name.equalsIgnoreCase("Ende")){
    System.out.println("Eingabe beendet!");
    System.out.println("");
    for(int c=liste.length-1; c>=0; c--){
    System.out.printf( liste[c]);
    }
    break;
    }
else{
        liste[i]=name;
    }
    }

}
}

Was ist hier falsch? ich habs genau so gemcht wie du es mir gesagt hast das programm läuft nicht mehr ;(
 
Java:
public static void main(String[] args) {
        String name; //Variable name
 
        String liste[]=new String[109]; //Array
 
        for(int i=0; i<109; i++){
            System.out.println("Geben Sie Name ein: "); // Namen werden eingegeben
            name=Eingabe.readString(); //Name wird gelesen

            if(name.equals(".")||name.equalsIgnoreCase("Ende")){
                System.out.println("Eingabe beendet!");
                System.out.println("");
                for(int c=liste.length-1; c>=0; c--){
                    System.out.printf( liste[c]);
                }
                break;
            }
            else{
                liste[i]=name;
            }
        }
	}

Jetzt hast Du aber noch ein Problem. Wenn "Ende" eingegeben wird, bevor alle Felder des Arrays gefüllt sind, wirst Du bei der umgekehrten Ausgabe eine NullPointerException bekommen. Du solltest alle Felder des Arrays zumindest mit einem Leerstring initialisieren, oder gleich eine Arraylist verwenden.
 
Zuletzt bearbeitet:
Ich würde sagen, der Code hat ein ganz anderes, wesentliches Problem hinsichtlich der Struktur und der damit verbundenen Logik: Man kann die Namen nicht ausgeben, ohne welche unmittelbar davor einzugeben.

Erstes Anzeichen für ein Problem: "Eingabe beendet!" wird nicht ausgegeben, obwohl nach 109 Namen die Eingabe garantiert beendet ist.

Lösung des Problems: Code logisch aufbauen. 😉 Die Eingabe erfolgt in einer Schleife, also ist die Eingabe erst hinter der Schleife beendet.

Ark
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben