Hallo Zusammen,
ich bin neu hier und hoffe ich mache das alles korrekt! ;-)
Jetzt zu meiner Frage:
Ich habe folgenden Code erstellt:
unter main() läuft das Hauptmenü mit 6 Auswahlpunkten, die über switch... case in die jeweilige Methode springen.
Das Hauptmenü soll durch eine Endlosschleife am laufen gehalten werden, damit die Werte der Variablen nicht verloren gehen.
Deshalb habe ich die Klassenvariable i auf 1000000 gesetzt, diese sollte ja im gesamten Programm bekannt sein.
Ich wähle also Menüpunkt 1 für neue Kiste erfassen und erfasse meine Kiste, danach kommt dann die Abfrage, ob ich eine
weitere Kiste erfassen will? Wenn ich mit "Ja" antworte funktioniert noch alles. Bei "Nein" müsste er doch meines Erachtens wieder in main ()
unter case 1: an dem Punkt weitermachen, an dem in die Methode gesprungen wurde.
Wie bekomme ich es hin, das er nach dem Verlassen der Methode wieder in das Hauptmenü springt?
Habe schon verschiedenste Varianten mit if / for / do... while und auch mit lokeln Variablen versucht. Nichts hat funktioniert!
Habt Ihr nen Tipp wie ich das hinbekomme?
Vielen Dank im Voraus.
Gruß
Lars
ich bin neu hier und hoffe ich mache das alles korrekt! ;-)
Jetzt zu meiner Frage:
Ich habe folgenden Code erstellt:
Javascript:
/*########################################################
* Einsendeaufgabe 4
* #####################################################*/
package einsendeaufgabe_4;
//für das Einlesen
import javax.swing.*;
//für die Sonderfunktionen der Arrays
import java.util.Arrays;
public class Einsendeaufgabe_4 {
static boolean weiter = true; //Klassenvariable "weiter", damit diese in jeder Methode verwendet werden kann
static boolean neueKisteBeenden = false; //Flag-Variable für Endlosschleife
static int i = 1000000; //Klassenvariable für Endlosschleife um main() am Laufen zu halten
//Methode1 - neue Kiste erfassen
static void neueKiste(int[][] argneueKiste) {
int kistenNummer, länge = 0, breite = 0, höhe = 0; // Varibalen für die Eingabedialoge zur Übergabe an das Array
String nKisteEinlesen = null; //String-Variable für den Eingabedialog
char nKistefunktionWahl; //charVariable um nur das erste Zeichen der Eingabe zu verwenden
do { //bewusste Endlosschleife, da das Programm laufen muss, damit die Werte der Variablen nicht verloren gehen!!!!
//neue Kiste eingeben
do {
kistenNummer = Integer.parseInt(JOptionPane.showInputDialog("Bitte die Nummer der neuen Kiste eingeben"));
//Prüfung, ob die Kiste schon vorhanden ist, wenn nein, dann Daten eingeben
if (argneueKiste[kistenNummer-1][0] == 0) {
//kistenNummer vergeben
argneueKiste[kistenNummer-1][0]=kistenNummer;
if (argneueKiste[kistenNummer-1][0] > 0) {
//Werte für länge, breite und höhe einlesen und dem Array zuweisen
länge = Integer.parseInt(JOptionPane.showInputDialog("Kistenlänge"));
argneueKiste[kistenNummer-1][1]=länge;
breite = Integer.parseInt(JOptionPane.showInputDialog("Kistenbreite"));
argneueKiste[kistenNummer-1][2]=breite;
höhe = Integer.parseInt(JOptionPane.showInputDialog("Kistenhöhe"));
argneueKiste[kistenNummer-1][3]=höhe;
System.out.println("Kistennr:\t" + "Länge\t" + "Breite\t" + "Höhe");
System.out.println(kistenNummer + "\t\t" + länge + "\t" + breite + "\t" + höhe);
}
else {
System.out.println("Kistennummer ist bereits vergeben.");
System.out.println("Kistennummer ist ungültig.");
}
}
}
while(kistenNummer <= 0 || kistenNummer>argneueKiste.length);
//Eingabedialog switch/case weitere Kiste erfassen J/N
nKisteEinlesen = JOptionPane.showInputDialog("Möchten Sie eine weitere Kiste erfassen: \n1 = Ja \n2 = Nein");
// nur das erste Zeichen nehmen
nKistefunktionWahl = nKisteEinlesen.charAt(0);
//die Auswertung von funktionWahl
switch (nKistefunktionWahl) {
//der case-Zweig für 1
case '1':
//Auswahl Ja wurde getroffen
neueKisteBeenden = false;
break;
//der case-Zweig für 2
case '2':
//Auswahl Nein wurde getroffen
neueKisteBeenden = true;
break;
default:
System.out.println("Das Programm wurde beendet!");
}
}
while(neueKisteBeenden == false);
System.exit(0);
}
//Methode2 - Kiste löschen
static void kisteLöschen(int[][] argArray) {
}
//Methode3 - Kiste ändern
static void kisteÄndern(int[] argArray) {
}
//Methode4 - Kiste suchen
static void kisteSuchen(int[] argArray) {
}
//Methode5 - Kiste löschen
static void kisteListe(int[] argArray) {
}
public static void main(String[] args) {
int [][] aKistenArray = new int [4][75]; //Zweidimensionaler Array 4 Spalten / 75 Zeilen
String funktionEinlesen = null; //String-Variable für den Eingabedialog
char funktionWahl; //charVariable um nur das erste Zeichen der Eingabe zu verwenden
for (i = 1000000; i > 0; i--) { //bewusste Endlosschleife, da das Programm laufen muss, damit die Werte der Variablen nicht verloren gehen!!!!
//Eingabe der gewünschten Funktion
funktionEinlesen = JOptionPane.showInputDialog("Bitte wählen Sie die gewüschte Funktion aus: \n1 = neue Kiste erfassen \n2 = Kiste löschen \n3 = Kiste ändern \n4 = Kiste suchen und Wete anzeigen \n5 = Kisten in einer Liste anzeigen \n6 = Programm beenden");
// nur das erste Zeichen nehmen
funktionWahl = funktionEinlesen.charAt(0);
//die Auswertung von funktionWahl
switch (funktionWahl) {
//der case-Zweig für 1
case '1':
//Methode1 - Kiste neu eingeben
neueKiste(aKistenArray);
break;
//der case-Zweig für 2
case '2':
//Methode2 - Kiste löschen
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
//löschenKiste (kistenArray);
break;
//der case-Zweig für 3
case '3':
//Methode3 - Kiste ändern
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
//ändernKiste (kistenArray);
break;
//der case-Zweig für 4
case '4':
//Methode4 - Kiste suchen und Werte anzeigen
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
//suchenKiste (kistenArray);
break;
//der case-Zweig für 5
case '5':
//Methode5 - Kisten in einer Liste anzeigen
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
//listeKiste (kistenArray);
break;
case '6':
//Programm beenden?
i = 0;
break;
//für alle anderen Eingaben
default:
System.out.println("Sie haben keine gültige Auswahl getroffen!");
} //hier endet die Auswertung von funktionWahl
System.exit(0);
}
}
}
unter main() läuft das Hauptmenü mit 6 Auswahlpunkten, die über switch... case in die jeweilige Methode springen.
Das Hauptmenü soll durch eine Endlosschleife am laufen gehalten werden, damit die Werte der Variablen nicht verloren gehen.
Deshalb habe ich die Klassenvariable i auf 1000000 gesetzt, diese sollte ja im gesamten Programm bekannt sein.
Ich wähle also Menüpunkt 1 für neue Kiste erfassen und erfasse meine Kiste, danach kommt dann die Abfrage, ob ich eine
weitere Kiste erfassen will? Wenn ich mit "Ja" antworte funktioniert noch alles. Bei "Nein" müsste er doch meines Erachtens wieder in main ()
unter case 1: an dem Punkt weitermachen, an dem in die Methode gesprungen wurde.
Wie bekomme ich es hin, das er nach dem Verlassen der Methode wieder in das Hauptmenü springt?
Habe schon verschiedenste Varianten mit if / for / do... while und auch mit lokeln Variablen versucht. Nichts hat funktioniert!
Habt Ihr nen Tipp wie ich das hinbekomme?
Vielen Dank im Voraus.
Gruß
Lars