Ich habe ein Programm geschrieben das mir Filme in stunden umwandelt. (Einfach nicht fragen ist für ein Privates Projekt.
Jetzt habe ich hier folgenden code
Jetzt habe ich das Problem das er mir nach dem ersten berechnen und dem Anschließenden Ausgeben des Ergebnisses (
System.out.println(zahl1 + " Filme ergeben "+ ergebnis + " Tage!"); )
keine weitere Zahl eingeben lässt sondern sofort in Default springt weil die eingabe = "".
Wie kann ich verhindern das er "" als Eingabe annimmt und ich stattdessen eine neue Zahl eingaben kann?
mfg
Nico
Jetzt habe ich hier folgenden code
package com.company;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
writeInitHelpText();
Scanner sc = new Scanner(System.in);
String eingabe = sc.nextLine();
operateCommand(eingabe, sc);
}
private static void writeInitHelpText() {
System.out.print("[0]: h to Filme; [1]: Filme to h; [2]: Days to Filme; [3]: Filme to Days; [shrexit]: Beenden; ");
}
private static void operateCommand(String eingabe, Scanner sc) throws IOException {
switch (eingabe) {
case "0":
double zahl1, ergebnis;
System.out.println("Wieviele Stunden sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = zahl1 / 1.5;
System.out.println(zahl1 + " Stunden ergeben "+ ergebnis + " Filme!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "1":
System.out.println("Wieviele Filme sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = zahl1 * 1.5;
System.out.println(zahl1 + " Filme ergeben "+ ergebnis + " Stunden!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "2":
System.out.println("Wieviele Tage sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = (zahl1 * 24) / 1.5;
System.out.println(zahl1 + " Tage ergeben "+ ergebnis + " Filme!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "3":
System.out.println("Wieviele Filme sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = (zahl1 * 1.5) / 24 ;
System.out.println(zahl1 + " Filme ergeben "+ ergebnis + " Tage!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "shrexit":
return;
default:
System.out.println("Ungültige Nummer! Bitte eine der o. g. Zahlen eingeben!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
}
}
private static void repeatCommandWithInfoText(Scanner sc) throws IOException {
String eingabe;
writeInitHelpText();
eingabe = sc.nextLine();
operateCommand(eingabe, sc);
}
}
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
writeInitHelpText();
Scanner sc = new Scanner(System.in);
String eingabe = sc.nextLine();
operateCommand(eingabe, sc);
}
private static void writeInitHelpText() {
System.out.print("[0]: h to Filme; [1]: Filme to h; [2]: Days to Filme; [3]: Filme to Days; [shrexit]: Beenden; ");
}
private static void operateCommand(String eingabe, Scanner sc) throws IOException {
switch (eingabe) {
case "0":
double zahl1, ergebnis;
System.out.println("Wieviele Stunden sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = zahl1 / 1.5;
System.out.println(zahl1 + " Stunden ergeben "+ ergebnis + " Filme!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "1":
System.out.println("Wieviele Filme sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = zahl1 * 1.5;
System.out.println(zahl1 + " Filme ergeben "+ ergebnis + " Stunden!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "2":
System.out.println("Wieviele Tage sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = (zahl1 * 24) / 1.5;
System.out.println(zahl1 + " Tage ergeben "+ ergebnis + " Filme!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "3":
System.out.println("Wieviele Filme sollen berechnet werden?");
zahl1 = sc.nextDouble();
ergebnis = (zahl1 * 1.5) / 24 ;
System.out.println(zahl1 + " Filme ergeben "+ ergebnis + " Tage!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
case "shrexit":
return;
default:
System.out.println("Ungültige Nummer! Bitte eine der o. g. Zahlen eingeben!");
System.out.print( System.lineSeparator());
repeatCommandWithInfoText(sc);
break;
}
}
private static void repeatCommandWithInfoText(Scanner sc) throws IOException {
String eingabe;
writeInitHelpText();
eingabe = sc.nextLine();
operateCommand(eingabe, sc);
}
}
Jetzt habe ich das Problem das er mir nach dem ersten berechnen und dem Anschließenden Ausgeben des Ergebnisses (
System.out.println(zahl1 + " Filme ergeben "+ ergebnis + " Tage!"); )
keine weitere Zahl eingeben lässt sondern sofort in Default springt weil die eingabe = "".
Wie kann ich verhindern das er "" als Eingabe annimmt und ich stattdessen eine neue Zahl eingaben kann?
mfg
Nico