Guten Abend Zusammen
Ich habe hier einen Quellcode und komme einfach nicht weiter.
Eigentlich sollte solange nach einer nächsten Stadt gefragt werden, bis die Startstadt wieder eingegeben wird. Aber das Programm bricht nach der Eingabe der 2. Stadt ab. Könnt Ihr mir vielleicht einen Tip geben, woran das liegt?
Ich habe hier einen Quellcode und komme einfach nicht weiter.
Eigentlich sollte solange nach einer nächsten Stadt gefragt werden, bis die Startstadt wieder eingegeben wird. Aber das Programm bricht nach der Eingabe der 2. Stadt ab. Könnt Ihr mir vielleicht einen Tip geben, woran das liegt?
Java:
public class Route {
// (0)AAchen, (1)Berlin, (2)Chemnitz, (3)Dresden, (4)Erfurt, (5)Flensburg, (6)Garmisch, (7)Hamburg
int[][] entfernung = {
{000, 640, 580, 650, 440, 649, 735, 490}, //(0)Aachen
{640, 000, 260, 190, 300, 450, 671, 290}, //(1)Berlin
{580, 260, 000, 70, 150, 670, 480, 520}, //(2)Chemnitz
{650, 190, 70, 000, 220, 650, 610, 502}, //(3)Dresden
{440, 300, 150, 220, 000, 550, 490, 400}, //(4)Erfurt
{649, 450, 670, 650, 550, 000, 1020, 160}, //(5)Flensburg
{735, 671, 480, 610, 490, 1020, 000, 869}, //(6)Garmisch
{490, 290, 520, 502, 400, 160, 869, 000} //(7)Hamburg
};
//Array in dem die Staede gespeichert sind.
String[] stadt = new String[8]; {
stadt[0] = ("Aachen");
stadt[1] = ("Berlin");
stadt[2] = ("Chemnitz");
stadt[3] = ("Dresden");
stadt[4] = ("Erfurt");
stadt[5] = ("Flensburg");
stadt[6] = ("Garmisch");
stadt[7] = ("Hamburg"); }
/*Methode anbieten
* der Benutzer kann wählen, ob er die Standartroute,
* oder die vorgegebene Route möchte
*/
public final void anbieten() {
System.out.println("Staedte: Aachen, Berlin, Chemnitz, Dresden, " //zeigt die verfügbaren Städte an
+ "Erfurt, Flensburg, Garmisch, Hamburg");
// Auswahl der Städteliste mit Hilfe der Konsole
String antwort;
antwort = Konsole. getInputString("Moechten Sie diese Staedteliste nutzen? j/n");
if (antwort.equals("j")){ //Bei Eingabe "j" wird die Standartroute ausgegeben
System.out.println ("Antwort: " + antwort);
alleDaten ();
}
else if (antwort.equals("n")){ //Bei Eingabe "n" wird die Methode "list" ausgeführt
//Der Benutzer kann seine eigene Route zusammenstellen
list ();
}
else { //Wird weder "j" noch "n" eingegeben wird mitgeteilt, dass
System.out.println("Bitte geben Sie j oder n ein"); // Eingabe ungültig ist, eine erneute Eingabe ist möglich
antwort = Konsole. getInputString("Moechten Sie diese Staedteliste nutzen? j/n");
}
}
public int standardroute(){
int summe = //Berechnung der Kilometeranzahl der Standartroute
(entfernung[1][6]+
entfernung[6][7]+ //Die Felder des Arrays werden nach vorgegebener Reihenfolge summiert
entfernung[7][3]+
entfernung[3][6]+
entfernung[6][0]+
entfernung[0][5]+
entfernung[5][1]);
return summe;
}
public void alleDaten(){ // Route wird übersichtlich auf der Konsole ausgegeben
System.out.println("Start: Berlin");
System.out.println("Von Berlin nach Garmisch: " + entfernung[1][6] + "km.");
System.out.println("Von Garmisch nach Hamburg: " + entfernung[6][7] + "km.");
System.out.println("Von Hamburg nach Dresden: " + entfernung[7][3] + "km.");
System.out.println("Von Dresden nach Garmisch: " + entfernung[3][6] + "km.");
System.out.println("Von Garmisch nach Aachen: " + entfernung[6][0] + "km.");
System.out.println("Von Aachen nach Flensburg: " + entfernung[0][5] + "km.");
System.out.println("Von Flensburg nach Berlin: " + entfernung[5][1] + "km.");
System.out.println("Gesamtstrecke: " + standardroute());
}
//Methode zum erstellen einer eigenen Route
public void list() {
int s = 0; //Start
int ns = 0; //naechste Stadt
int ls = 0; //letzte Stadt
int strecke = 0;
stadt [s] = Konsole.getInputString("Bitte geben Sie die Startstadt ein.");
System.out.println("Staedte: Aachen, Berlin, Chemnitz, Dresden, "
+ "Erfurt, Flensburg, Garmisch, Hamburg");
stadt [ls] = stadt [s]; //die Route wird mit der 1. Stadt beendet
System.out.println("Start in: " + stadt [s]);
stadt [ns] = Konsole.getInputString("Bitte geben Sie die nächste Stadt ein");
if (!stadt [s].equals(stadt [ns])) { // es können so lange Städt eingegeben werden, bis die
// 1. Stadt eingegeben wird
// übersichtliche Ausgabe der Auswahl für den Benutzer auf der Konsole
System.out.println("Von " + stadt [ls] + " nach " + stadt [ns]);
// Entfernung zwischen den beiden Städten wird als Zwischensumme berechnet
// und auf der Konsole ausgegeben
int i = Integer.valueOf(stadt [ls]);
int j = Integer.valueOf(stadt [ns]);
System.out.println(entfernung[i][j] + " km.");
// Die gesamten Zwischensummen der Entfernungen werden summiert
strecke = strecke + entfernung[i][j];
stadt [ls] = stadt [ns]; // es wird immer die zuletzt eingegebene Stadt
// mit der aktuellen Stadt ausgegeben und berechnet
}
else { //wenn der Benutzer die Startstadt eingibt, wird die
System.out.println("Gesamtstrecke: " + strecke); //Eingabe beendet und die Kilometerzahl der gesamten
//Strecke ausgegeben
}
}
//Die Methoden werden getestet
public static void main(String[] args) {
Route test = new Route();
test.anbieten();
}
}
Zuletzt bearbeitet: