Wir haben folgendes Programm und dieses ist wie in der Überschrift steht zu lang, wie kann ich dies kürzen dass ich weiterhin auf die Variablen zugreifen kann
Java:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Zimmer[] zi = new Zimmer[6];
zi[0] = new Flur();
zi[1] = new Kueche();
zi[2] = new Badezimmer();
zi[3] = new Schlafzimmer();
zi[4] = new Arbeitszimmer();
zi[5] = new Wohnzimmer();
//Lokale Variablen
boolean inDerWohnung = true;
int auswahl = 1;
String auswahlWelchesZimmer;
int zimmer;
zimmer = 0;
//Initialisierung der Objekte
zi[0].setName("Flur");
zi[1].setName("Kueche");
zi[1].setHerd(false);
zi[2].setName("Badezimmer");
zi[2].setDusche(false);
zi[3].setName("Schlafzimmer");
zi[4].setName("Arbeitszimmer");
zi[5].setName("Wohnzimmer");
for (int i = 0; i <= zi.length; i++) {
zi[i].setLicht(false);
}
//Anfang der Schleife
while (inDerWohnung) {
zi[zimmer].betreten();
zi[zimmer].ausgabeMenu();
auswahl = scanner.nextInt();
//Methode zur auswahl welche funktion.
//Auswahl 1 : Licht anschalten
if (auswahl == 1) {
zi[zimmer].lichtschalterBetaetigen();
// ein Zimmer zur�ck oder Wohnung verlassen
//und warnung anzeigen lassen
} else if (auswahl == 2) {
if (zimmer <= 0) {
for (int i = 0; i < zi.length; i++) {
zi[i].warnung(i);
}
System.out.println("Du hast die Wohnung verlassen");
inDerWohnung = false;
} else if (zimmer > 0) {
zimmer = zimmer - 1;
}
//neues Nachbarzimmer wird ausgew�hlt
} else if (auswahl == 3) {
System.out.println("Welches Nachbarzimmer? ");
//wenn das Zimmer 0 (Flur) werden alle ausgew�hlt
if (zimmer == 0) {
System.out.println("a) " + zi[1].getName());
System.out.println("b) " + zi[2].getName());
System.out.println("c) " + zi[3].getName());
System.out.println("d) " + zi[4].getName());
auswahlWelchesZimmer = scanner.next();
switch (auswahlWelchesZimmer) {
case "a": zimmer = 1;
break;
case "b": zimmer = 2;
break;
case "c": zimmer = 3;
break;
case "d": zimmer = 4;
break;
default: System.out.println("ung�ltige Ausgabe!");
break;
}
//wenn das zimmer nichzt flur dann eins davor
//Eins danach und Flur
} else if (zimmer <= zi.length && zimmer > 0) {
System.out.println("a) " + zi[zimmer - 1].getName());
System.out.println("b) " + zi[zimmer + 1].getName());
System.out.println("c) " + zi[0].getName());
auswahlWelchesZimmer = scanner.next();
switch (auswahlWelchesZimmer) {
case "a":
zimmer = zimmer - 1;
break;
case "b":
zimmer = zimmer + 1;
break;
case "c":
zimmer = 0;
break;
default:
System.out.println("ung�ltige Ausgabe!");
break;
}
}
//Wenn 4 gewaehlt wird wird je nach Kueche oder Bad
//der Herd oder die Dusche an/ausgemacht
} else if (auswahl == 4) {
if (zimmer == 1) {
zi[1].herdBetaetigen();
}
if (zimmer == 2) {
zi[2].duscheBetaetigen();
} else {
System.out.println("ung�ltige Auswahl");
}
} else {
System.out.println("ungueltige Auswahl");