2016-07-16 4 views
0

Ich übe das Schreiben von Code in Java und arbeite an einem einfachen Programm, das fragt, welche Klasse (von Dungeons and Dragons) der Benutzer sein will. Nachdem diese Daten empfangen wurden, möchte ich, dass meine nächste Frage eine Liste von Waffen aufstellt, die auf der eingegebenen Klasse basiert."oder" Bedingungen verschiedener Zeichenketten innerhalb einer if ... then Anweisung

Mein Problem liegt in der ersten Frage "Gruß, Held ...". Wenn der Benutzer eine ungültige Klasse eingibt, möchte ich, dass eine Nachricht erscheint, die besagt, dass eine richtige Klasse ausgewählt werden muss, und dann erscheint eine Liste verschiedener Klassen für den Benutzer. Ich bin mir nicht sicher, wie ich die "if..then" -Anweisung richtig schreiben soll.

Dieses Programm ist unvollständig und ich hielt an dem Teil an, an dem ich feststeckte.

import java.util.Scanner; 

public class apples { 
    public static void main(String[] args) { 

     Scanner uinput = new Scanner(System.in); 
     String firstclass, secondclass, multiclass, rogue, bard, fighter, wizard, sorcerer, monk, paladin, cleric, warlock, ranger; 
     int dagger, shortsword, mace; 

     System.out.println("Greetings hero, what profession do others call you?"); 
     firstclass = uinput.next(); 
     if(firstclass.equalsIgnoreCase("rogue") || ("bard") || "fighter" || "wizard" || "sorcerer" || "monk" || "paladin" || "cleric" || "warlock" || "ranger")); 

     System.out.println("Aha! So we have a " +firstclass + " in our party!"); 
    } 
} 
+1

Dies ist nicht der richtige Weg. Sie wiederholen entweder 'firstclass.equalsIgnoreCase' für jeden String, oder verwenden' switch', oder - vorzugsweise - verwenden Sie einen 'Set ' und testen Sie für die Aufnahme. – Elazar

+0

'" fighter "', '" wizard "' usw. sind keine booleschen Ausdrücke. Siehe [diese Frage] (http://stackoverflow.com/questions/7604814/best-way-to-format-multiple-or-conditions-in--an-if-statement-java) für gute Möglichkeiten, mehrere Bedingungen zu bewerten. – azurefrog

+0

Danke Jungs. Ich bin brandneu und unterrichte mich mit Quellen, die ich online finde. Ich schätze die Hilfe :) –

Antwort

0

Dies ist der einfachste Weg, um den Code zu schreiben, obwohl, wie andere darauf hingewiesen haben, werden Sie wahrscheinlich ein all „bekannte“ Klassen in Set<String> setzen wollen, so können Sie leicht prüfen, ob die Eingabe im Set und so können Sie auch einfach alle gültigen Optionen ausdrucken.

if(firstclass.equalsIgnoreCase("rogue") || firstclass.equalsIgnoreCase("bard") || firstclass.equalsIgnoreCase("fighter") || firstclass.equalsIgnoreCase("wizard") || firstclass.equalsIgnoreCase("sorcerer") || firstclass.equalsIgnoreCase("monk") || firstclass.equalsIgnoreCase("paladin") || firstclass.equalsIgnoreCase("cleric") || firstclass.equalsIgnoreCase("warlock") || firstclass.equalsIgnoreCase("ranger")) { 
    System.out.println("Aha! So we have a " + firstclass + " in our party!"); 
} else { 
    System.out.println("I don't know what a " + firstclass + " is."); 
} 
+0

Das ist großartig! Ich danke dir sehr. Ich schäme mich dafür, eine so grundlegende Frage gestellt zu haben, aber ich bringe mir selbst bei, was ich online finde. Ihre Hilfe wird gerne in Anspruch genommen. –

Verwandte Themen