Hallo, ich bin noch ein absoluter Anfänger, desshalb eine ziemlich banale Frage:
Wie kann ich bei einer Eingabe die erste und die zweite Ziffer auslesen lassen? Hier mal mein Programm:
Soweit funktioniert es, nur würde ich bei der Eingabe gerne Linie und Haltestelle kombinieren, also 43 als Eingabe wäre dann startlinie=4 und starthalte=3
Und noch eine winzige Frage zum Schluss. Bei mir wird das Ergebniss immer doppel ausgegeben, also so:
Wie bekomme ich das weg?
Wie kann ich bei einer Eingabe die erste und die zweite Ziffer auslesen lassen? Hier mal mein Programm:
Java:
package info;
import java.io.*;
/**
*
* @author Patrick
*/
public class Straßenbahnnetz {
// Hauptroutine.
public static void main(String[] args) throws IOException {
// Wir brauchen die folgende Zeile um die Eingabe vom DOS Prompt zu lesen.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// Eingabe Start
System.out.print("Geben Sie die Linie ein, in die Sie einsteigen möchten: ");
String input = br.readLine();
int startlinie = Integer.parseInt(input);
System.out.print("Geben Sie die Haltestelle, in die Sie einsteigen möchten: ");
input = br.readLine();
int starthalte = Integer.parseInt(input);
// Eingabe Ziel
System.out.print("Geben Sie die Linie ein, aus der Sie aussteigen möchten: ");
input = br.readLine();
int ziellinie = Integer.parseInt(input);
System.out.print("Geben Sie die Haltestelle an, aus der Sie aussteigen möchten: ");
input = br.readLine();
int zielhalte = Integer.parseInt(input);
//Grundbetrag
int kosten = 3;
// Kurzstrecke
//auf einer Linie
if ((Math.abs(starthalte - zielhalte) == 1) && (startlinie == ziellinie || ziellinie == 0 || startlinie == 0)) {
//Baustellen
if (startlinie != 2 && ziellinie != 0 || startlinie != 0 && ziellinie != 2) {
kosten = kosten - 1;
}
}
//auf einer Haltestelle
if ((Math.abs(startlinie - ziellinie) == 1) && (starthalte == zielhalte)) {
//Baustellen
if (startlinie != 4 && ziellinie != 5 || startlinie != 5 && ziellinie != 4) {
kosten = kosten - 1;
}
}
// Zonenwechsel
if (starthalte <= 2 && zielhalte >= 3 || starthalte >= 3 && zielhalte <= 2) {
//einmal Zohnenwechsel
if (starthalte <= 2 || zielhalte <= 2 || startlinie == ziellinie || startlinie == 0 || ziellinie == 0) {
kosten = kosten + 1;
} //zweimal Zohnenwechsel
else {
kosten = kosten + 2;
}
}
// Endhaltestelle
if (zielhalte == 5 || starthalte == 5) {
//eine Endhaltestelle
if (zielhalte != starthalte) {
kosten = kosten + 1;
} //zwei Endhaltestellen
else {
kosten = kosten + 2;
}
}
// Rechnung
System.out.print("Die Fahrtkosten betragen: " + kosten + " Euro");
}
}
Soweit funktioniert es, nur würde ich bei der Eingabe gerne Linie und Haltestelle kombinieren, also 43 als Eingabe wäre dann startlinie=4 und starthalte=3
Und noch eine winzige Frage zum Schluss. Bei mir wird das Ergebniss immer doppel ausgegeben, also so:
run:
Geben Sie die Linie ein, in die Sie einsteigen möchten: 2
Geben Sie die Haltestelle, in die Sie einsteigen möchten: 4
Geben Sie die Linie ein, aus der Sie aussteigen möchten: 5
Geben Sie die Haltestelle an, aus der Sie aussteigen möchten: 1
Die Fahrtkosten betragen: 4 EuroDie Fahrtkosten betragen: 4 Euro
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 8 Sekunden)
Wie bekomme ich das weg?