mardi 28 juillet 2020

Java shows previous if clauses input again

Hey so this is my Main class:

package com.company;

import java.util.*;
import java.lang.String;

public class Main {

public static int menu = 0;

public static void main(String[] args) {
// write your code here
    //boolean listeda= false

    System.out.println("Geben Sie ihre gewünschte Maximalmenge an Stylisten und Klienten an. (1.Stylist; 2.Client)");
    Scanner in1 = new Scanner(System.in);
    int z1 = in1.nextInt();
    int z2 = in1.nextInt();
    PersonData db = new PersonData(z1, z2);
    System.out.println("Ihre Datensätze können bis zu "+z1+" Stylisten und "+z2+" Klienten enthalten.");
    System.out.println();

    System.out.println("Geben Sie ihre gewünschte Maximalmenge Terminen. (abhängig von ihren Speicherkapazitäten)");
    Scanner in2 = new Scanner(System.in);
    int z3 = in2.nextInt();
    AppointmentData adb = new AppointmentData(z3);
    System.out.println("Ihre Datensätze können bis zu "+z3+" Einträge enthalten.");
    System.out.println();

    int menu = Menu();
    while(menu != 99) {

        if(menu == 0) Menu();
        
        else if (menu == 1) {
            System.out.println("1");
            System.out.println();
        }

        else if (menu == 2) {
            //printMap(list); //Apointment get all Entries
            System.out.println("2");
            System.out.println();
            Menu();
        }
        else if (menu == 3){
            System.out.println("Geben Sie ihre gewünschte Maximalmenge Terminen. (abhängig von ihren Speicherkapazitäten)");
            Scanner in = new Scanner(System.in);
            //int a = in.nextInt();
            db.insertStylist("Chanti", "Mueller", "c.mueller@mail.de", 123123, "cut", "wash");
            System.out.println("Ihre Datensätze können bis zu "+in.nextInt()+" Einträge enthalten.");
            System.out.println();
        }
        else if (menu == 4){

        }
        else if (menu == 5){
            System.out.println("Geben Sie ihren gewünschten Termin an. (day, month, year, hour, min, service(s))");
            Scanner in = new Scanner(System.in);
            int a = in.nextInt();
            int b = in.nextInt();
            int c = in.nextInt();
            int d = in.nextInt();
            int e = in.nextInt();
        }
        else if (menu == 6){
        }
        
        Menu();

    }
    System.exit(0);
}


public static int Menu(){ //Menü mit Auswahlmöglichkeiten
    
    System.out.println("menu="+menu);
    
    System.out.println();
    System.out.println("Terminplaner (Zahl eintragen)");
    System.out.println();
    System.out.println("[1] Neuen Termin anlegen");
    System.out.println("[2] Termine anzeigen lassen");
    System.out.println("[3] Stylist eintragen und anzeigen lassen");
    System.out.println("[4] Client eintragen und anzeigen lassen");
    System.out.println("[5] Termin eintragen und anzeigen lassen");
    System.out.println("[99] Programm beenden");

    Scanner in = new Scanner(System.in);

    switch(in.nextInt()) {
        case 1:
            System.out.println("Neuer Termin:");
            menu = 1;
            return menu;
        case 2:
            System.out.println("Termine");
            menu = 2;
            return menu;
        case 3:
            System.out.println("Datenliste für Stylisten und Klienten serialisieren.");
            menu = 3;
            return menu;
        case 4:
            System.out.println("Datenliste für Termine serialisieren.");
            menu = 4;
            return menu;
        case 5:
            System.out.println("Datenliste für Termine serialisieren.");
            menu = 5;
            return menu;
        case 99:
            System.out.println("Planer wird geschlossen");
            System.exit(0);
            menu = 99;
            return menu;
        default:
            System.err.println("Falsche Eingabe");
            Menu();
            return menu;
    }

}

}

And if I enter 1 for example the program enters the right way, but if I put 3 afterwards the program does only the text for option 3 and then prints option 1 again. How do I fix this?

I know that I need to enter the while loop again before the if statements but somehow my code seems to go back into the previous if clauses that were already triggered.

Aucun commentaire:

Enregistrer un commentaire