Verschachtelte Case Fallunterscheidung

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe ein Problem und zwar habe ich für eine Objektverwaltung eine Textbasierte Oberfläche gestaltet und möchte nun von der zweiten Verschachtelung wieder in die erste gelangen hier mal der Code

Code:
boolean ende=false;
	    
	    // Printing of the "Objektverwaltung" with Switch Construct
		System.out.println("Die Objekteverwaltung von Grafiken");
		System.out.println("=================================="+
				           "==================================");
		System.out.println("\nHauptmenue");
		System.out.println("\n(1) Objekte Datei schreiben");
		System.out.println("(2) Objekte auslesen");		
		System.out.println("(3) Objekte suchen");
		System.out.println("(4) Objekt loeschen");
		System.out.println("(5) Objekte filtern");
		System.out.println("(6) Objekte hinzufügen");
		System.out.println("\n(0) Programm beenden");
		try{
			System.out.println("\nAuswahl: ");
			Scanner eingabe=new Scanner(System.in);
			int auswahl=eingabe.nextInt();
			switch(auswahl){
			
            //	Fall 1 Objekte in Datei schreiben
			
			case 1: System.out.println("\n Objekt werden angelegt...");
                    
                    
			        try{
			        	// Serialisiert Objekt und legt ArrayList und Eingabe in Datei
			        	FileOutputStream fos = new FileOutputStream("test.txt");
						ObjectOutputStream oos = new ObjectOutputStream(fos);
						
		        		// Schreibt ArrayList in Datei
		        		
		        		oos.writeObject((ArrayList) c);
		        		System.out.println(c);
					    						
					    System.out.println("ArrayList wurde in Datei gespeichert");
					    oos.close();
					    }
			        
			        
			        
			catch(IOException e){
				e.printStackTrace();
			}
					
			break;
             //	 Fall 2 Liest aus ArrayList
			case 2:  System.out.println("Objekte laden...");
			       	        	        
	        
	        	 try{
	        		 FileInputStream in=new FileInputStream("test.txt");
	        		 ObjectInputStream in1=new ObjectInputStream(in);
	        		
	        		 c=(ArrayList)in1.readObject();
	        		 System.out.println(c.toString());
	        		 in1.close();
	        		 
	        	 }	 
	        catch(FileNotFoundException e){
	        	System.out.println("Datei nicht gefunden");
	        }
	        break;
			// Fall 3 Objekt anhand ID suchen	
			case 3: suchen(c,sphere);
				    				
				break;
				
			// Fall 4  Objekte Anhand ID in der ArrayList löschen
			case 4:   löschen(c,point); 
				       				       				     				            
			break;
			
			// Fall 5 Objekte nach Namen filtern
			
			case 5: filtern(c,linie);
			
			break;
			// Fall 6 Objekte zur ArrayList hinzufügen
			
			case 6: System.out.println("Objekt anlegen...");
			        try{
			        	System.out.println("\nBitte wählen Sie: ");
			        	System.out.println("(1) für Sphere");
			        	System.out.println("(2) für Point");
			        	System.out.println("(3) für Linie");
			        	System.out.println("(4) für Triangle");
			        	System.out.println("(5) Hauptmenü");
			        	System.out.println(" Nummer eingeben :");
			        	
						Scanner eingabe1=new Scanner(System.in);
						int auswahl1=eingabe1.nextInt();
						switch(auswahl1){
						case 1: hinzufügen1(c,sphere);
						break;
						case 2: hinzufügen1(c,point);
						break;
						case 3: hinzufügen1(c,linie);
						break;
						case 4: hinzufügen1(c,triangle);
						break;
						case 5: ????????????????????????? ????????????

An dieser Stelle dort unten möchte ich wieder zum Hauptmenü gelangen aber ich weiß nicht wie es gehn soll kann mir da jemand helfen? Danke
 
G

Gast

Gast
bei case 5 solltest du nichts mehr tun. Statt dessen baust du eine Schleife ums ganze, die auf eine ende bedingung wartet und sonst endlos läuft. dann wäre dieser schleifendurchgang beendet und du wärst wieder im hauptmenue
 
G

Guest

Gast
Die meinst eine Schleife um die komplette verschachtelte case Konstruktion?
 

Fu3L

Top Contributor
Ich hab nicht genau verstanden was du möchtest, aber könnten dir vllt Sprungmarken weiterhelfen?

Code:
Sprungmarke:

while( ne Bedingung) {

while(ne andere Bedingung) {

break Sprungmarke;

}

}

//Nach dem Break gehts hier weiter, egal ob die Bedingungen in den Schleifen noch erfüllt sind

DAmit legst du halt fest, an welcher Stelle er wieder ansetzen soll nach einem continue oder break (bei continue direkt unter der Sprungmarke, bei break unterhalb der Schleife, Bedingung etc). Habs allerdings noch nie mit switch ausprobiert...

Edit: Siehe hierzu auch "die Insel":

http://openbook.galileocomputing.de/javainsel7/javainsel_02_006.htm#mj1331f887a2229d470446f2e1dc8e3d92
 

0x7F800000

Top Contributor
nach dem "case 5: ??????" einfach nur break; einfügen und nichts tun.
Stattdessen das ganze menu in eine unendlichschleife packen und immer wieder anzeigen. Dann evtl vor die while-schleife einen label setzen, und sowas einbauen:
Code:
mainMenu: while(true){
  //menu malen
  //auf eingabe warten
  //anderes untermenu malen
  //falls der benutzer zurück ins untermenu will:
  case 5: continue mainMenu;
}
Aber ich finde die gesamte vorgehensweise unschön und unflexibel, und vor allem unübersichtlich und fehler-anfällig.

Warum baust du da nicht einfach eine baumartige struktur auf, wo jeder knoten entweder ein untermenu oder eine aktion enthält? Wäre doch wesentlich einfacher als diese ganzen mosntrösen switch-geschichten..

edi: manoman, bin ich lahm^^
 
G

Guest

Gast
suuuper danke habs jetzt ;) das mit der Sprungmarke kannte ich noch garnicht ....
 

Marco13

Top Contributor
Besser wäre (subjektiv) erstmal, die ganzen cases in Methoden zu packen - das ist sonst ziemlich unübersichtlich. Das ganze könnte dann noch in eine Schleife. Grob so ...
Code:
    boolean ende=false;
      
    // Printing of the "Objektverwaltung" with Switch Construct
   System.out.println("Die Objekteverwaltung von Grafiken");
   System.out.println("=================================="+
                       "==================================");
      
   while (!ende)
   {
      ende = true;

      System.out.println("\nHauptmenue");
      System.out.println("\n(1) Objekte Datei schreiben");
      System.out.println("(2) Objekte auslesen");      
      System.out.println("(3) Objekte suchen");
      System.out.println("(4) Objekt loeschen");
      System.out.println("(5) Objekte filtern");
      System.out.println("(6) Objekte hinzufügen");
      System.out.println("\n(0) Programm beenden");

      System.out.println("\nAuswahl: ");
      Scanner eingabe=new Scanner(System.in);
      int auswahl=eingabe.nextInt();
      switch(auswahl){
          case 1: schreibeInDatei(); break;
          case 2: leseAusDatei();   break;
          case 3: suchen(c,sphere); break;
          case 4: löschen(c,point);  break;
          case 5: filtern(c,linie);  break;
          case 6: 
              hinzufügen(); 
              ende = false; // Weiter geht's im Hauptmenü...
              break;
      }
   }


private void hinzufügen()
{            
  System.out.println("Objekt anlegen...");
   try{
      System.out.println("\nBitte wählen Sie: ");
      System.out.println("(1) für Sphere");
      System.out.println("(2) für Point");
      System.out.println("(3) für Linie");
      System.out.println("(4) für Triangle");
      System.out.println("(5) Hauptmenü");
      System.out.println(" Nummer eingeben :");
      
    Scanner eingabe1=new Scanner(System.in);
    int auswahl1=eingabe1.nextInt();
    switch(auswahl1){
    case 1: hinzufügen1(c,sphere);
    break;
    case 2: hinzufügen1(c,point);
    break;
    case 3: hinzufügen1(c,linie);
    break;
    case 4: hinzufügen1(c,triangle);
    break;
  }
  catch(...){}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
S Verschachtelte for-Schleife Java Basics - Anfänger-Themen 2
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
P Verschachtelte Hashmap Java Basics - Anfänger-Themen 6
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
B Verschachtelte For Schleifen Java Basics - Anfänger-Themen 8
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
S Verschachtelte Schleife Java Basics - Anfänger-Themen 3
F Methoden Verschachtelte if else Methode Java Basics - Anfänger-Themen 10
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
Y Verschachtelte For-Schleife Java Basics - Anfänger-Themen 5
D verschachtelte Schleifen Java Basics - Anfänger-Themen 6
M Verschachtelte Forschleifen Java Basics - Anfänger-Themen 2
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
R Verschachtelte Arraylist und deren Größe auslesen Java Basics - Anfänger-Themen 7
C Verschachtelte Map auslesen Java Basics - Anfänger-Themen 4
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
F Verschachtelte Schleifen Java Basics - Anfänger-Themen 4
J Hilfe verschachtelte Schleifen Java Basics - Anfänger-Themen 5
G Collections verschachtelte ArrayList abfüllen Java Basics - Anfänger-Themen 5
X verschachtelte suche Java Basics - Anfänger-Themen 8
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
D Verschachtelte Objekterzeugung Java Basics - Anfänger-Themen 6
S verschachtelte for-Schleife Java Basics - Anfänger-Themen 6
X Verschachtelte Annotationen Java Basics - Anfänger-Themen 9
J verschachtelte Schleife Java Basics - Anfänger-Themen 10
P Verschachtelte Schleife vorzeitig abbrechen. Java Basics - Anfänger-Themen 50
S verschachtelte for Schleife und Ergebniss. Java Basics - Anfänger-Themen 3
J verschachtelte for-schleifen Java Basics - Anfänger-Themen 2
S Verschachtelte Klassen Java Basics - Anfänger-Themen 12
D Verschachtelte IF-Anweisung Java Basics - Anfänger-Themen 10
C Verschachtelte for-schleifen Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 5
3 Verschachtelte Zuweisung Java Basics - Anfänger-Themen 4
M Tief verschachtelte Packages Java Basics - Anfänger-Themen 7
T add-Methode für verschachtelte ArrayLists Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleife Java Basics - Anfänger-Themen 6
E Verschachtelte If-Anweisungen - "else without if" Java Basics - Anfänger-Themen 4
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
P Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 4
F Verschachtelte Arrays kopieren und überschreiben Java Basics - Anfänger-Themen 4
J Verschachtelte for schleife mit dynamischer Anzahl an Schleifen Java Basics - Anfänger-Themen 10
M Verschachtelte Strukturen. Java Basics - Anfänger-Themen 7
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
A Verschachtelte Hashtable ausgeben. Java Basics - Anfänger-Themen 3
W verschachtelte while schleife Java Basics - Anfänger-Themen 8
W verschachtelte For-Schleife - continue Java Basics - Anfänger-Themen 8
R Verschachtelte Schleife? Java Basics - Anfänger-Themen 6
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
S verschachtelte while Schleifen Java Basics - Anfänger-Themen 5
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
B Notensystem Switch-Case Java Basics - Anfänger-Themen 31
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
R contains ist case-intrensive Java Basics - Anfänger-Themen 7
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
K In einem Case gefüllte Arraylist in einer anderen Case ausgeben Java Basics - Anfänger-Themen 2
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
F Case in While? Java Basics - Anfänger-Themen 6
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
J Erste Schritte Falscher case wir ausgeben Java Basics - Anfänger-Themen 11
T switch case und continue Java Basics - Anfänger-Themen 5
D switch case Code Java Basics - Anfänger-Themen 3
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
J swich case-default Java Basics - Anfänger-Themen 2
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
P Switch Case - Fließkommazahl Java Basics - Anfänger-Themen 2
F Geht in alle Case rein, warum?? Java Basics - Anfänger-Themen 12
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
R Switch/Case frage: Java Basics - Anfänger-Themen 12
Spin JUNIT Test Case - Problem bei testen Java Basics - Anfänger-Themen 2
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
P Compilerfehler bei switch-case Java Basics - Anfänger-Themen 18
P orphaned case macht probs Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben