Können if Anweisungen aufeinander aufbauen?

Hallo,
ich bin noch Anfänger und weiß noch nicht so viel über Java. Ich habe folgendes Programm geschrieben:
Code:
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Ist heute Silvester?");
        System.out.println("Wenn Ja dann mit 1 antworten, wenn Nein dann mit 2 antworten.!");


                String p = br.readLine();
                if (p.equals ("1")) {
                    System.out.println("Glückwunsch Sie dürfen feiern!");
                }
                else if (p.equals ("2")) {
                    System.out.println("Zünden nur Erlaubt, wenn Genehmigung vorhanden ist!");
                }
                
                else {
                    System.out.println("Sie haben sich nicht an die Anleitung gehalten, Programm bitte neu starten!");
                }
        
    }
So nun zu meiner Frage. Ich möchte gerne, dass das Programm nach "Glückwunsch Sie können feiern" weiterlauft. Ich möchte nämlich Fragen, welche Feuerwerksklassen man hat. Es gibt insgesamt 5 Klassen, wovon man für die 2 und 4 Klasse eine Sondergenehmigung bräuchte. Also gekürzt, eine if Anweisung, die aufgebaut wird durch das Ergebnis einer anderen if Anweisung. Ist das möglich?
 
Ja, Du kannst grundsätzlich Variablen definieren, die den Fall festhalten und dann später darauf zurückgreifen.

Schemenhaft und arg übertrieben:
Java:
p = frageNachFeuerwerksklasse();

boolean benoetigtSondererlaubnis = false;
if (p.equals("2") || p.equals("4")) {
    benoetigtSondererlaubnis = true;
}

if (benoetigtSondererlaubnis) {
    p = frageNachSondererlaubnis();
    boolean hatSondererlaubnis = false;
    if (p.equals("j")) {
        hatSondererlaubnis = true;
    }

    if (!hatSondererlaubnis) {
        System.out.println("Du benötigst eine Sondererlaubnis, hast aber keine");
    }
}
Man kann das kürzen zu
Java:
p = frageNachFeuerwerksklasse();

boolean benoetigtSondererlaubnis = p.equals("2") || p.equals("4");

if (benoetigtSondererlaubnis) {
    p = frageNachSondererlaubnis();
    boolean hatSondererlaubnis = p.equals("j");

    if (!hatSondererlaubnis) {
        System.out.println("Du benötigst eine Sondererlaubnis, hast aber keine");
    } else {
        System.out.println("Sehr schön, dann lass uns das Zeug abfackeln.");
}
Da Du noch am Anfang stehst, an dieser Stelle nur der Hinweis, dass man so etwas besser mit Objekten regelt und die Eingabe von der Logik trennt. Aber: step by step - erstmal die Syntax verinnerlichen.

EDIT: ein paar Flüchtigkeitsfehler im Code ausgebessert.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben