falsche eingabe erkennen

domimako

Neues Mitglied
Hallo, wie würde ich es hinkriegen das eine falsche Eingabe erkennt wird und dann eine Nachricht wie "falsche Eingabe, bitte wähle eine gültige Option" kommt.
Danke im voraus
Java:
//Hauptklasse
public class Main{

    //Funtion für die Computer wahl
    public static String generateComputerChoice( Random  random){

        int wordNumber;
        //random zahl für die computer wahl
        wordNumber = random.nextInt( 5 ) + 1;
        String computerChoice = "";

        //random computer wahl
        if( wordNumber == 1 ){
            computerChoice = "stein";
        }else if( wordNumber == 2 ){
            computerChoice = "papier";
        }else if( wordNumber == 3 ){
            computerChoice = "schere";
        }else if( wordNumber == 4 ){
            computerChoice = "echse";
        }else if( wordNumber == 5 ){
            computerChoice = "spock";
        }

        System.out.println( "\nComputer hat seine Wahl getroffen" );
        return computerChoice;

    }

    //Function um alle optionen zu zeigen
    public static void showMenu(){

        System.out.println( "deine optionen :\n1.stein\n2.papier\n3.schere\n4.echse\n5.spock" );

    }

    //function für spieler wahl
    public static String getUserChoice( Scanner scanner ){

        String userWordChoice = "";
        System.out.print( "\nMache deine Wahl : " );
        System.out.print( "\nBitte alles klein schreiben :)  " );
        userWordChoice = scanner.nextLine();
        //Returning the user choice
        return userWordChoice;

    }

    //Function Ergebnis
    public static String chooseWinner( String computerChoice, String userChoice ){

        String winner = "kein gewinner";
        String customMessage = "unentschieden";
        String finalMessage = "";

        String rockCustomMessage1 = "stein schlägt schere";
        String rockCustomMessage2 = "Stein zerquetscht Echse";
     
        String scissorsCustomMessage1 = "Schere tötet Echse";
        String scissorsCustomMessage2 = "schere schneidet papier";
     
        String paperCustomMessage1 = "Papier umhüllt stein";
        String paperCustomMessage2 = "Papier widerlegt Spock";
     
        String EchseCostumMessage1 = "Echse frisst Papier";
        String EchseCostumMessage2 = "Echse vergiftet Spock";
     
        String SpockCostumMessage1 = "Spock pulverisiert Stein";
        String SpockCostumMessage2 = "Spock benutzt Schere";

        //gewinner Logik startet

        if( computerChoice.equals( "stein" ) && userChoice.equalsIgnoreCase( "schere" ) ){
            winner = "Computer";
            customMessage = rockCustomMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "stein" ) && computerChoice.equals( "schere" ) ){
            winner = "Benutzer";
            customMessage = rockCustomMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "stein" ) && computerChoice.equals( "echse" ) ){
            winner = "Benutzer";
            customMessage = rockCustomMessage2;
         
        }else if (computerChoice.equals( "stein" ) && userChoice.equalsIgnoreCase( "echse" ) ){
            winner = "Computer";
            customMessage = rockCustomMessage2;
         
        }

        if( computerChoice.equals( "schere" ) && userChoice.equalsIgnoreCase( "papier" ) ){
            winner = "Computer";
            customMessage = scissorsCustomMessage2;
         
        }else if( userChoice.equalsIgnoreCase( "schere" ) && computerChoice.equals( "papier" ) ){
            winner = "Benutzer";
            customMessage = scissorsCustomMessage2;
         
        }else if( userChoice.equalsIgnoreCase( "schere" ) && computerChoice.equals( "echse" ) ){
            winner = "Benutzer";
            customMessage = scissorsCustomMessage1;
         
        }else if( computerChoice.equals( "schere" ) && userChoice.equalsIgnoreCase( "echse" ) ){
            winner = "Computer";
            customMessage = scissorsCustomMessage1;
         
        }

        if( computerChoice.equals( "papier" ) && userChoice.equalsIgnoreCase( "stein" ) ){
            winner = "Computer";
            customMessage = paperCustomMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "papier" ) && computerChoice.equals( "stein" ) ){
            winner = "Benutzer";
            customMessage = paperCustomMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "papier" ) && computerChoice.equals( "spock" ) ){
            winner = "Benutzer";
            customMessage = paperCustomMessage2;
         
        }else if( computerChoice.equals( "papier" ) && userChoice.equalsIgnoreCase( "spock" ) ){
            winner = "Computer";
            customMessage = paperCustomMessage2;
         
        }

        if( computerChoice.equals( "echse" ) && userChoice.equalsIgnoreCase( "papier" ) ){
            winner = "Computer";
            customMessage = EchseCostumMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "echse" ) && computerChoice.equals( "papier" ) ){
            winner = "Benutzer";
            customMessage = EchseCostumMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "echse" ) && computerChoice.equals( "spock" ) ){
            winner = "Benutzer";
            customMessage = EchseCostumMessage2;
         
        }else if( computerChoice.equals( "echse" ) && userChoice.equalsIgnoreCase( "spock" ) ){
            winner = "Computer";
            customMessage = EchseCostumMessage2;
         
        }
     
         if( computerChoice.equals( "spock" ) && userChoice.equalsIgnoreCase( "stein" ) ){
            winner = "Computer";
            customMessage = SpockCostumMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "spock" ) && computerChoice.equals( "stein" ) ){
            winner = "Benutzer";
            customMessage = SpockCostumMessage1;
         
        }else if( userChoice.equalsIgnoreCase( "spock" ) && computerChoice.equals( "schere" ) ){
            winner = "Benutzer";
            customMessage = SpockCostumMessage2;
         
        }else if( computerChoice.equals( "spock" ) && userChoice.equalsIgnoreCase( "schere" ) ){
            winner = "Computer";
            customMessage = SpockCostumMessage2;
         
        }
     
        //Gewinner Logik endet
        finalMessage = winner + " hat gewonnen ( " + customMessage + " )";

        //Finale message
        return finalMessage;

    }

    //Main function
    public static void main( String [] args ){

        while (true) {
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        String computerChoice;
        String userChoice;
        String winner;

        showMenu();
        computerChoice = generateComputerChoice( random );
        userChoice = getUserChoice( scanner );
        winner = chooseWinner( computerChoice, userChoice );

        System.out.println( "\ndu wählst : " + userChoice + "\nComputer wählte : " +computerChoice );
        System.out.println( winner );
        System.out.println();
        System.out.println("------------------------------------------------------------");
        System.out.println();

    }

}
}
 

temi

Top Contributor
Nach der Eingabe des Users:
Java:
if (Bedingung für falsche Wahl) {
    // tu was du tun musst
}

Du musst dann halt im Weiteren darauf reagieren, wenn die userChoice nichts enthält.

Oder du packst die Eingabe in eine while-Schleife, die solange läuft, bis etwas gültiges eingegeben wurde.

EDIT: Es ist ggf. sinnvoll, diese Kontrolle in eine separate Methode auszulagern, dann kannst du etwas wie while(!gueltigeEingabe(eingabe)) { machen.
 
Zuletzt bearbeitet:

Blender3D

Top Contributor
Hallo, wie würde ich es hinkriegen das eine falsche Eingabe erkennt wird und dann eine Nachricht wie "falsche Eingabe, bitte wähle eine gültige Option" kommt.
Hier ein Beispiel:
[CODE lang="java" highlight="21-35, 11"]import java.util.Scanner;

public class RoshamboStart {
private final static Scanner input = new Scanner(System.in);
private final static int EXIT = Roshambo.getNumValues() + 1;

public static void main(String[] args) {
RoshamboMatch match = welcomePlayer();
do {
showMenu();
int choose = inputInt("? ", 1, EXIT);
if (choose == EXIT)
break;
match.play(new Roshambo(choose - 1));
showResult(match);
} while (true);
System.out.println("Ende!");
}

private static int inputInt(String label, int min, int max) {
int value = 0;
boolean ok = false;
do {
try {
System.out.print(label + " >");
value = Integer.parseInt(input.next());
if (value < min || value > max)
System.out.println("Bitte nur Zahlen im Bereich von [" + min + "-" + max + "] eingeben!");
else
ok = true;
} catch (NumberFormatException e) {
System.out.println("Bitte nur ganze Zahlen eingeben!");
}
} while (!ok);
return value;
}

private static void showMenu() {
Roshambo.VALUE[] values = Roshambo.VALUE.values();
int size = values.length;
System.out.println("\no---------------o");
for (int i = 0; i < size; i++)
System.out.println("| " + (i + 1) + " -> " + values + "\t|");
System.out.println("| " + (size + 2) + " -> EXIT\t|");
System.out.println("o---------------o");
}

private static void showResult(RoshamboMatch match) {
System.out.println("-------------------------");
System.out.println(match);
System.out.println(match.getMatchString());
System.out.println("-------------------------\n");
}

private static RoshamboMatch welcomePlayer() {
System.out.println("\nWillkommen zu Schere, Stein, Papier, Echse Spock");
System.out.print("\nGeben sie ihren Namen ein ");
String name = input.next();
System.out.println("\nHallo " + name + " lass uns spielen!\n");
return new RoshamboMatch(name);
}
}
[/CODE]
[CODE lang="java" title="Roshambo"]import java.util.Random;

public class Roshambo implements Comparable<Roshambo> {
private final static Random rnd = new Random(System.currentTimeMillis());

public enum VALUE {
SCHERE, STEIN, PAPIER, ECHSE, SPOCK
}

public final VALUE value;

public Roshambo() {
this(getRandomValue());
}

public Roshambo(VALUE value) {
this.value = value;
}
public Roshambo(int id) {
this.value = idToValue(id);
}

@Override
public int compareTo(Roshambo o) {
if (value == o.value)
return 0;
switch (value) {
case ECHSE:
return o.value == VALUE.SPOCK || o.value == VALUE.PAPIER ? 1 : -1;
case PAPIER:
return o.value == VALUE.STEIN || o.value == VALUE.SPOCK ? 1 : -1;
case SCHERE:
return o.value == VALUE.ECHSE || o.value == VALUE.PAPIER ? 1 : -1;
case SPOCK:
return o.value == VALUE.SCHERE || o.value == VALUE.STEIN ? 1 : -1;
case STEIN:
}
return o.value == VALUE.ECHSE || o.value == VALUE.SCHERE ? 1 : -1;
}

public static int getNumValues() {
return VALUE.values().length;
}

public static VALUE getRandomValue() {
int id = rnd.nextInt(getNumValues());
return VALUE.values()[id];
}
public static VALUE idToValue(int id) throws IllegalArgumentException {
if( id < 0 || id >= getNumValues() )
throw new IllegalArgumentException("Id is not valid!");
return VALUE.values()[id];
}

@Override
public String toString() {
return value.toString();
}

}[/CODE]
[CODE lang="java" title="RoshamboMatch"]public class RoshamboMatch {
public final String name;
private Roshambo[] value = new Roshambo[2];
private int[] points = new int[value.length];
public final static int CPU = 0;
public final static int PLAYER = 1;
public final static int PUSH = 2;

public RoshamboMatch(String name) {
this.name = name;
}

public String getMatchString() {
if (value[0] == null)
return name + " hat nicht gespielt!";
String tmp = "[" + value[PLAYER] + "] <> [" + value[CPU] + "]" + System.lineSeparator();
int result = getResult();
if (result == PUSH)
return tmp + " Unentschieden!";
tmp += result == PLAYER ? " " + name + " gewinnt!" : " Computer gewinnt!";
return tmp;
}

private int getResult() {
int cmp = value[PLAYER].compareTo(value[CPU]);
if (cmp == 0)
return PUSH;
return cmp == 1 ? PLAYER : CPU;
}

public int play(Roshambo value) {
if (value == null)
throw new IllegalArgumentException("Null is not allowed");
this.value[CPU] = new Roshambo();
this.value[PLAYER] = value;
int result = getResult();
if (result == PUSH)
return PUSH;
if (result == CPU)
points[CPU]++;
else
points[PLAYER]++;
return result;
}

public void reset() {
for (int i = 0; i < value.length; i++) {
value = null;
points = 0;
}
}

@Override
public String toString() {
return " " + name + " (" + points[PLAYER] + ") <-> CPU (" + points[CPU] + ")";
}

}
[/CODE]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
T Input/Output Falsche Eingabe ausgeben Java Basics - Anfänger-Themen 3
M Input/Output ISBN Leser - falsche Eingabe ausgeben Java Basics - Anfänger-Themen 2
M Falsche Eingabe wiederholen lassen Java Basics - Anfänger-Themen 2
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
C falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
volcanos HashSet und Iterator -> Falsche Sortierreihenfolge ? Java Basics - Anfänger-Themen 18
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
L Falsche Methode wird geladen Java Basics - Anfänger-Themen 2
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
R StringBounds falsche Ergebnisse Java Basics - Anfänger-Themen 5
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
T Falsche Ausgabe ???? Java Basics - Anfänger-Themen 13
S Falsche Ausgabe Java Basics - Anfänger-Themen 6
V Personenverwaltung mit List<>, falsche Ausgaben Java Basics - Anfänger-Themen 5
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
K Falsche Methode Java Basics - Anfänger-Themen 3
J Falsche Darstellung von Float Java Basics - Anfänger-Themen 2
W Methoden Falsche Felder von Methode belgegt Java Basics - Anfänger-Themen 14
M falsche implementierung von currentTimeMillis() ? Java Basics - Anfänger-Themen 14
F charAt-Methode liefert falsche Unicode-Werte Java Basics - Anfänger-Themen 8
P Falsche Werte bei Zeitmessungen Java Basics - Anfänger-Themen 7
Helgon Falsche Zeichen im Text Java Basics - Anfänger-Themen 10
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
D Kriege falsche MD5 Java Basics - Anfänger-Themen 12
R run ->eclipse ruft falsche Programme auf Java Basics - Anfänger-Themen 5
D p q formel gibt zum Teil falsche Werte aus Java Basics - Anfänger-Themen 5
S Falsche Version? Java Basics - Anfänger-Themen 2
C Falsche Zeit Java Basics - Anfänger-Themen 2
V Falsche Augabe Java Basics - Anfänger-Themen 16
C Klammern einlesen!!! Falsche Ausgabe!!!! Java Basics - Anfänger-Themen 4
S Falsche Reihenfolge von Methodenaufrufen Java Basics - Anfänger-Themen 8
K Verschiebeoperatoren - manchmal falsche Ergebnisse Java Basics - Anfänger-Themen 7
L Datenbankanbindung ODBC falsche pfadangabe? Java Basics - Anfänger-Themen 3
O Falsche Bed. (ein überlauf) seh den Fehler aber nicht. Java Basics - Anfänger-Themen 3
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
S Falsche Ausgabe Java Basics - Anfänger-Themen 3
L Wegen TableSorter wird falsche Zeile einer Tabelle gelöscht? Java Basics - Anfänger-Themen 2
G falsche Version Java Basics - Anfänger-Themen 3
L Falsche Umsetzung von MVC, brauche Hilfe Java Basics - Anfänger-Themen 6
D Tabelle -> Daten eingeben -> Falsche erhalten Java Basics - Anfänger-Themen 9
S Falsche Ausgabe? Java Basics - Anfänger-Themen 2
F Falsche Daten aus Datei Java Basics - Anfänger-Themen 2
G Falsche Java befehle, doch was ist falsch? Java Basics - Anfänger-Themen 9
M Falsche do-Schleife? Java Basics - Anfänger-Themen 4
E falsche Ausgabe Java Basics - Anfänger-Themen 7
D Falsche Datumsausgabe? Java Basics - Anfänger-Themen 5
J erhalte falsche Kalenderwoche - wo ist der Fehler? Java Basics - Anfänger-Themen 2
Torschti Eingabe von Dezimalzahlen (bis zu zwei Kommastellen) Java Basics - Anfänger-Themen 11
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
A Bei VierGewinnt Eingabe per Buchstabe (a,b,c...) Java Basics - Anfänger-Themen 2
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Eingabe limit Java Basics - Anfänger-Themen 8
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
N Eingabe erkennen, ob groß oder kleingeschrieben worden ist Java Basics - Anfänger-Themen 22
N Fehlerausgabe bei falscher Eingabe der Users Java Basics - Anfänger-Themen 3
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
iman Eingabe von Benutzer Filter machen. Java Basics - Anfänger-Themen 7
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben