Java Nullpointer- und switch-Anweisung Problem

raffiSSL

Lt. Junior Grade
Registriert
Feb. 2006
Beiträge
289
Hallo, habe ein kleines Problem das ich nicht so recht kapieren will, hier erstmal der wichtige Teil des Quelltextes:
Code:
public class Main {

	Professur[] prof;
	Professur testProf;
	SimpleInput in;
	int auswahl; 	//Menü-Auswahl Variable
	int i;			//Zählvariable für Schleifen in Methoden
	int zaehl;		//Zählvariable für Professur-Feld
	String profName;
	
	public Main () {
		prof = new Professur[50];
                testProf = new Professur();
		auswahl = 0;
		i = 0;
		zaehl = 0;
		in = new SimpleInput();
	}
	
	public void go () {
		
		System.out.println("Was wollen sie tun?");
		System.out.println("1: Professur anlegen");
		System.out.println("2: Lehrveranstaltung anlegen");
		System.out.println("3: Professuren anzeigen");
		System.out.println("4: Lehrveranstaltungen einer Professur anzeigen");
		System.out.println("5: alle Lehrveranstaltungen anzeigen");
		System.out.println("6: Programm beenden");
		System.out.println("===============================================");
		
		do {
			auswahl = in.readInt("Auswahl: ");
			System.out.println();
			
			switch (auswahl) {
			case 1: 
				prof[zaehl] = testProf.anlegenProf();
				zaehl++;
			case 2: 
				suche();
			case 3:
				anzeigeProf();
			case 4:
				
			case 5:
				
			case 6:
				System.out.println("Programm beendet.");
			default:
				System.out.println("Falsche Eingabe, bitte versuchen Sie es noch einmal.");
			}
		} while (auswahl != 6 && i < 50);
	}

Das Problem oder eher fragwürdige ist das beenden der do-while Schleife. Er gibt mir wenn ich die 6 drücke den case 6 UND den default aus. Auch hier die Frage, warum? Er dürfte doch eigentlich nur in den case 6 reingehen und dann aus der Schleife springen, aber das macht er erst nachdem er den default aufgerufen hat.

Ich hoffe die Erklärung reicht so.

mfg

EDIT: Nullpointer Problem gelöst, siehe "Grund".
 
Zuletzt bearbeitet: (Hatte vergessen die testProf-Variable zu initialiseren, das Nullpointer Problem ist also gelöst.)
Du solltest wohl jeden case-Zweig mit einer break-Anweisung abschließen.

Gruß,

badday
 
Achja...stimmt.
Danke das wars, kann man schonmal vergessen :freak:

mfg
 
Zurück
Oben