Erste Schritte IF-Abfrage fehlerhaft

freakyy

Mitglied
Hallo liebe Community!

Ich wollte ein eigenes Knobelspiel programmieren, welches den User nach Schere, Stein oder Papier fragt. Der Computer generiert eine Random-Zahl von 0-2, und hat dann auch entweder Schere, Stein oder Papier. Das funktioniert alles sehr gut, ich habe jedoch 2 große Probleme mit dem Code, schaut ihn euch mal bitte an.

Java:
import java.util.Random;
import javax.swing.JOptionPane;

public class Master {
	public static void main(String[] args) {
		Random rand = new Random();
		while (true) {
			int var = rand.nextInt(3);
			String eingabe, comp = null;

			eingabe = JOptionPane.showInputDialog("Bitte Schere/Stein/Papier eingeben:");

			switch (var) {
			case 0:
				comp = "Schere";
				break;
			case 1:
				comp = "Stein";
				break;
			case 2:
				comp = "Papier";
				break;
			}
			System.out.println("comp: \"" + comp + "\" eingabe: \"" + eingabe + "\"");
			if (comp==eingabe) {
				JOptionPane.showMessageDialog(null, "Der Computer hat auch " + comp + " genommen! Score bleibt gleich.");
				score(false);
			} else if ((eingabe == "Stein") && (comp == "Schere")) {
				score(true);
			} else if ((eingabe == "Stein") && (comp == "Papier")) {
				score(false);
			} else if ((eingabe == "Schere") && (comp == "Stein")) {
				score(false);
			} else if ((eingabe == "Schere") && (comp == "Papier")) {
				score(true);
			} else if ((eingabe == "Papier") && (comp == "Schere")) {
				score(false);
			} else if ((eingabe == "Papier") && (comp == "Stein")) {
				score(true);
			}
		}
	}
	public static void score(boolean gewonnen) {
		int[] score= new int[2];
		if (gewonnen) {
			score[0] += 1;
			score[1] += 1;
			JOptionPane.showMessageDialog(null, "Gluckwunsch, Gewonnen! Insgesamt " + score[0] + "/" + score[1]);
		} else {
			score[0] += 0;
			score[1] += 1;
			JOptionPane.showMessageDialog(null, "Leider verloren! Insgesamt " + score[0] + "/" + score[1]);
		}
	}
}

Diese Probleme sind:
1- Die IF-Abfragen funktionieren komischer Weise nicht... Ich habe einmal den Code debugt und habe durch gestept, und auch wenn die IF, bzw. die Else-If abfrage stimmt, überspringt er es einfach. Kann mir da wer helfen, bzw. sagen warum er die IF-Abfrage einfach als "false" sieht, obwohl es richtig ist?

in der Methode score, recht weit unten, definiere ich ein Array namens score[], das Problem ist jedoch, dass diese Variable immer neu auf 0 gesetzt wird. Wo, bzw. wie kann ich die Variable anders setzen, dass er nur einmal die Variable definiert?
Danke schon mal im Vorraus!

PS: Bitte produktive Antworten, nicht soetwas wie: der Code ist ja ur schlecht, schäm dich!
 
Zuletzt bearbeitet:

Kaibear

Aktives Mitglied
Zum Score fällt mir auf, dass du jedes mal, nach jedem Spielergebnis die Score-Funktion neu aufrufst. Das ist auch kein Problem bis auf, dass er das Array immer neu erstellt, weshalb der Score immer 0 ist, wenn das zweite Spiel gemacht wird.

Du müsstest die Array-Felder global definieren und nicht nur in der Methode. Dann müsstest du dein Ziel erreichen.

Was die If-Anweisung angeht, kann ich dir nicht weiterhelfen. Ich vermute irgend ein Problem mit den "breaks" aus der If-Anweisung. Aber das ist nur Spekulation.
 
Zuletzt bearbeitet:

freakyy

Mitglied
Danke für die schnelle Antwort,

habe jetzt das Array außerhalb der Methoden erstellt, und es funktioniert jetzt, sprich Problem 2 ist gelöst :D
 

nomuri

Aktives Mitglied
Sorry hatte nen Bug. Antwort 2 bereits gegeben.

Zu 1. Man vergleicht Strings nicht mit == sondern mit .equals()
 
Zuletzt bearbeitet:

freakyy

Mitglied
Oh, das erklärt einiges...
Das heißt, wenn ich den Inhalt einer Variable überprüfen will, und diese als String definiert ist, muss ich statt
Java:
if(variable=="String"){}
Java:
if(variable.equals("String")){}
eingeben?
 

ARadauer

Top Contributor
Prinzipiell macht equals() auch nur das

Java:
public boolean equals(Object obj) {
    return (this == obj);
}

wenn du es nicht selbst überschreibst
aber nicht von String!!

Code:
   /**
     * Compares this string to the specified object.  The result is {@code
     * true} if and only if the argument is not {@code null} and is a {@code
     * String} object that represents the same sequence of characters as this
     * object.
     *
     * @param  anObject
     *         The object to compare this {@code String} against
     *
     * @return  {@code true} if the given object represents a {@code String}
     *          equivalent to this string, {@code false} otherwise
     *
     * @see  #compareTo(String)
     * @see  #equalsIgnoreCase(String)
     */
    public boolean equals(Object anObject) {
	if (this == anObject) {
	    return true;
	}
	if (anObject instanceof String) {
	    String anotherString = (String)anObject;
	    int n = count;
	    if (n == anotherString.count) {
		char v1[] = value;
		char v2[] = anotherString.value;
		int i = offset;
		int j = anotherString.offset;
		while (n-- != 0) {
		    if (v1[i++] != v2[j++])
			return false;
		}
		return true;
	    }
	}
	return false;
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
L If Abfrage Java Basics - Anfänger-Themen 4
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
P Amazon SQS abfrage Java Basics - Anfänger-Themen 1
Marlena Bauer IBAN generieren (Deutschland) aus Abfrage von BLZ und Kontonummer? Java Basics - Anfänger-Themen 31
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
C Javafunktion zur Abfrage eines Quellcodes Java Basics - Anfänger-Themen 15
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D SQL Abfrage anpassen Java Basics - Anfänger-Themen 17
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
OlafHD Fehler Bei der if Abfrage Java Basics - Anfänger-Themen 5
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
D if-Abfrage Java Basics - Anfänger-Themen 12
J Abfrage für Programmwiederholung Java Basics - Anfänger-Themen 2
K Alternative zur If-Abfrage Java Basics - Anfänger-Themen 3
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
D Abfrage ob Variableninhalt korrekt Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
A Erste Schritte Problem bei meiner if-Abfrage! Java Basics - Anfänger-Themen 5
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
Z If abfrage - Minimum 0 Java Basics - Anfänger-Themen 9
J Abfrage versetzen Java Basics - Anfänger-Themen 2
D Methoden Abfrage ob ein Wert bereits vorhanden ist Java Basics - Anfänger-Themen 1
thet1983 if() Abfrage Java Basics - Anfänger-Themen 2
A charAt(x)-Abfrage lässt bei Strings<x das Pgrogramm abstürzen. Kann man das verhindern? Java Basics - Anfänger-Themen 4
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5
H Erste Schritte If Abfrage Java Basics - Anfänger-Themen 3
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
U einlesen, abfrage Java Basics - Anfänger-Themen 25
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
H if-Abfrage double wert Java Basics - Anfänger-Themen 5
M Erstes Prog. OS Abfrage Java Basics - Anfänger-Themen 9
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
B Boolean abfrage Java Basics - Anfänger-Themen 3
D Variablen Rücksprung nach If Abfrage Java Basics - Anfänger-Themen 16
T If- Abfrage Java Basics - Anfänger-Themen 8
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
D if-Abfrage Java Basics - Anfänger-Themen 6
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
C If abfrage zu getBackground Java Basics - Anfänger-Themen 2
T abfrage eines Integer Array s Java Basics - Anfänger-Themen 5
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
G Adminrechte abfrage Java Basics - Anfänger-Themen 5
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
R If-Abfrage, || funktioniert nicht Java Basics - Anfänger-Themen 4
S TabbedPane: nach Abfrage oldTab selektieren Java Basics - Anfänger-Themen 5
B Abfrage mittels Variable vereinfachen Java Basics - Anfänger-Themen 6
C Treffer Abfrage Java Basics - Anfänger-Themen 19
M nach jar export keine db abfrage möglich Java Basics - Anfänger-Themen 2
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
J Erste Schritte Im Tante-Emma-Laden mehrere Artikel kaufen mit if-Abfrage Java Basics - Anfänger-Themen 24
I Threads If-Abfrage vor kritischem Abschnitt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben