Stringvergleich

wiz

Mitglied
Hallo, ich komme an einer Stelle nicht weiter.

Und zwar hat der User an einer stelle die Möglichkeit auszuwählen ob er "angreift" oder ein "item" benutzen will.

Der Angriff funktioniert aber ich bekomme es nicht hin das, falls der User "item" eingibt der auch etwas tun soll aber es passiert einfach nichts.

Ich meine die Stelle an der dritten if Anweisung

Java:
 import java.util.Scanner;


public class Rollenspiel {

	public static void main(String[] args) {



		int spielerhp = 100;
		int monsterhp = 100;
		int spieleratk = 20;
		int monsteratk = 25;
		double hit = 0.5;
		int heiltrank = 10;

		System.out.println("Spieler -- HP: " + spielerhp + " -- ATK: " + spieleratk);
		System.out.println("Monster -- HP: " + monsterhp + " -- ATK: " + monsteratk);
		System.out.println();
		System.out.println("Mögliche Aktionen \n" + "1 - Angriff\n" + "2 - Item");

		Scanner sc = new Scanner(System. in );
		String angriff = sc.nextLine();


		String b = "angriff";

		if (angriff.equals(b)) {
			double zf = Math.random();

			if (zf > hit) {
				monsterhp = monsterhp - 0;
				System.out.println("Angriff fehlgeschlagen");
			} else {
				monsterhp = monsterhp - (int)(spieleratk * zf);
				System.out.println("Spieler -- HP: " + spielerhp + " -- ATK: " + spieleratk);
				System.out.println("Monster -- HP: " + monsterhp + " -- ATK: " + monsteratk);

				Scanner ds = new Scanner(System. in );
				String item = ds.nextLine();
				String c = "item";
				if (item.equals(c));
				System.out.println("lasfj");
			}













		}

	}
}
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Ich kenne das fachliche jetzt nicht dazu...

Aber besonders als Anfänger würde ich hinter jedes IF auch { } verwenden. Damit man sieht welcher Block ausgeführt wird.

Weil ohne wird nur eine Anweisung ausgeführt. In deinem Fall nur alles bit ";"

Das muss nämlich da weg

if-Anweisungen
 
Zuletzt bearbeitet:

wiz

Mitglied
Zudem ist das von dir gepostete Beispiel nicht sonderlich Objekt-Orientiert.

Sorry bin noch Delphi aus der Schule gewohnt.

Das ";" habe ich entfernt und die Klammern hinzugefügt. Leider tut sich immer noch nichts.

Darf man sowas hier machen, mit 2 Variablen? Bei mir spuckt er eine Fehlermeldung, das die erste Variable nicht initialisiert ist: Scanner ab, ac = new Scanner(System. in );
 

Supra

Bekanntes Mitglied
Du musst es ja auch implementieren damit er was tut. Angenommen die if- bedingung stimmt, wenn der User "item" eingibt, machst du ja keine Rechnung oder so.
 

arilou

Bekanntes Mitglied
Ich bin mir auch sicher, was genau passiert, wenn man zwei Scanner auf System.in angesetzt hat.
Der Scanner 'sc' ist ja noch immer gültig auf System.in, wenn du den Scanner 'ds' erzeugst.
Müsst' ich erst mal ausprobieren, was ein InputStream macht, wenn sich zwei Scanner darauf "registrieren"...
 

Ähnliche Java Themen

Neue Themen


Oben