Java: Wie kann ich eine Route mit beliebig vielen Zwischenhalten einlesen und im Array ausgeben?
Hallo zusammen.
Es soll ein Programmcode geschrieben werden, bei dem ein Anzahl Zwischenstopps, Start- und Endpunkt angegeben werden müssen. Alle Eingaben müssen im Array gespeichert und später wiedergegeben werden.
Wichtig ist:
- Erster Wert ist mein Startpunkt, bspw. Köln.
- Der letzte Arraywert ist mein Endpunkt, bspw. Berlin.
Irgendwas in meinem Code ist leider falsch. Es müssen definitiv zwei Schleifen vorhanden sein.
Könnt ihr mir bei der Korrektur meines Codes bitte helfen?
Besten Dank!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Diesen Teil nicht anpassen
Scanner keyScan = new Scanner(System.in);
System.out.print("Anzahl Zwischenhalte: ");
int anzahlVias = keyScan.nextInt();
keyScan.nextLine();
String [] strecke = new String[anzahlVias + 2];
System.out.print("Reise von: ");
// TODO: Start einlesen und im Array strecke speichern
strecke[0] = keyScan.nextLine();
System.out.print("Reise nach: ");
// TODO: Ziel einlesen und im Array strecke speichern
strecke[strecke.length - 1] = keyScan.nextLine();
// TODO: Vias einlesen und im Array strecke speichern
int counter = 0;
while (counter < strecke.length) {
for (int i = 0; i < strecke.length; i++) {
for (int y = 0; y < 3; y++) {
System.out.print("Via: ");
strecke[1] = keyScan.nextLine();
counter++;
}
System.out.println("Deine Route: "+ strecke[counter]);
}
// TODO: Route ausgeben
}
keyScan.close();
}
}
1 Antwort
Deine ineinander verschachtelten Schleifen machen nicht viel Sinn. An der Stelle ist doch lediglich verlangt, die noch übrigen Arrayelemente zu befüllen.
strecke = [ "Köln", null, null, null, /* ... */, "Berlin" ]
Das bedeutet, du brauchst eine Schleife, die beginnend bei Arrayindex 1 bis zum Index des letzten Elements (exklusiv) läuft. Je Laufschritt wird eine Eingabe eingelesen und an die Position des derzeitigen Index eingefügt.
Eine Schleife innerhalb dieser Schleife wäre nur notwendig, wenn du dafür sorgen müsstest, dass Zwischenstopps nicht doppelt angesteuert werden. Davon lese ich in der Aufgabenstellung jedoch nichts.
Nach dieser Operation soll laut TODO-Kommentar noch einmal die komplette Route ausgegeben werden. Also brauchst du noch einmal eine neue Schleife, die diesmal aber von Anfang bis Ende über das Array läuft.
besten Dank! habe mir die Aufgabe schwieriger gemacht als sie ist :) zwei while Schlaufen haben es auch getan