Anfang von Programmtext

LordLazor

Mitglied
Guten Tag,
ich bin noch ein ziemlicher Java Anfänger bzw. habe ich erst vor ein paar Wochen damit angefangen. In meiner Schule kommen wir sehr langsam voran, deswegen arbeite ich ein bisschen vor und versuche so viel wie möglich in meinen Kopf zu bekommen, was außerhalb der Schule passiert.

Zu meiner Frage:

ich möchte bei dem folgenden Programmtext ganz am Ende der Methode bei einer Ja/Nein Abfrage von JOptionPane bei Ja das Programm bzw. die Methode wiederholen und bei nein soll die Methode einfach abschließen. Die Frage dazu soll sein: Wollen Sie das Bewerbungsformular wiederholen?

Code:
public void bewerbungsFormular()
    {
        JOptionPane.showMessageDialog(null, "Dies ist ein Bewerbungsformular. Bitte füllen Sie dies in ganzen Sätzen aus, \nansonsten werden ihre Ergebnisse nicht gewertet!");
        String name = JOptionPane.showInputDialog("Zuerst geben Sie bitte erstmal Ihren Namen ein, damit wir Sie zuweisen können.");
        JOptionPane.showMessageDialog(null, "Guten Tag, " + name);
        String alter = JOptionPane.showInputDialog(null, "Nun möchten wir, dass Sie ihr Alter eingeben.");
        JOptionPane.showMessageDialog(null, "Ihr Alter " + alter + " wurde erfolgreich eingetragen");
        JOptionPane.showMessageDialog(null, "Bitte tragen Sie nun ein paar persönliche Informationen ein.\nDie Themen sind bereits vorangefertigt");
        String hobby = JOptionPane.showInputDialog(null, "Was machen Sie zur Zeit als Hobby?");
        JOptionPane.showMessageDialog(null, "Also würden Sie " + hobby + " für Ihren Job ab und zu ausfallen lassen?");
        String yesno = JOptionPane.showInputDialog(null, "Bitte antworten Sie nur mit ja oder nein");
        String zuHause = JOptionPane.showInputDialog(null, "Zu guter letzt würden wir wissen, ob Sie allgemein zu Hause an ihrer Arbeit arbeiten würden.\nBitte nur mit ja oder nein antworten.");
        JOptionPane.showMessageDialog(null, "Sie haben das Bewerbungformular erfolgreich fertiggestellt.");
        JOptionPane.showMessageDialog(null, "Sie haben folgende Antworten eingetragen:\nName: " + name + "\nAlter: " + alter + "\nHobby: " + hobby + "\nHobby für Job ausfallen lassen: " + yesno + "\nZu Hause arbeiten: " + zuHause);
        JOptionPane.showMessageDialog(null, "Fehler: 404\nSie wurden nicht angenommen\nBitte verlassen Sie umgehend den Raum", "Fehlermeldung", JOptionPane.ERROR_MESSAGE);
    }

Ich hoffe ich habe es gut genug erklärt, falls nicht erkläre ich dies gerne nochmal.

Edit: Der Programmtext, der angegeben ist, ist eigentlich ziemlich unwichtig, ich wollte nur zeigen, wie das Programm aufgebaut ist
Falls jemand eine Verbesserung des Codes hat kann er es mir gerne schildern!
 
Die Frage lässt sich mEn nicht 100%ig aus dem Text ableiten...
ich möchte bei dem folgenden Programmtext ganz am Ende der Methode bei einer Ja/Nein Abfrage von JOptionPane bei Ja das Programm bzw. die Methode wiederholen und bei nein soll die Methode einfach abschließen
Im wesentlichen geht es aber um 2 Dinge .. das JOptionPane und die Wiederholung des "Formulars". Da du die Frage zum JOptionPane schon beantwortet hast, hab ich einfach mal noch die Frage zur Wiederholung beantwortet 😉
 
Ja tut mir leid habe es etwas sehr kompliziert ausgedrückt 😕
Erstmal vielen Dank für den Programmtext mit JOptionPane.

Mein größtes Problem ist, dass ich schleifen also for und while nicht verstanden habe. Wir hatten dies noch nicht im Unterricht & die ganzen Tutorials haben mir nicht so ganz geholfen.
Könnte mir jemand evtl. ein Beispiel zum wiederholen einer Methode schreiben & mir dies erläutern 😀
 
dass ich schleifen also for und while nicht verstanden habe
Das ist nicht schwer. Ganz allgemein: eine Schleife wiederholt Anweisungen. In der Regel werden die Anweisungen wiederholt, so lange (oder auch bis) eine Bedingung erfüllt ist. Man kann Schleifen danach kategorisieren, ob die Bedingung vor oder nach dem Schleifendurchlauf überprüft wird.

Eine while-Schleife besteht aus einem Kopf und einem Rumpf. Dabei wird der Rumpf so lange wiederholt, wie die im Kopf formulierte Bedingung erfüllt ist. Eine while-Schleife hat in Java das Schema:
Java:
while (bedingung) {
    anweisung(en);
}
Die Anweisungen werden wiederholt, so lange die bedingung erfüllt ist. Die Bedingung wird dabei vor jedem Schleifendurchlauf überprüft.

Oft ist es notwendig, vor der while-Schleife Variablen zu initialisieren, die in der Bedingung oder im Rumpf verwendet werden. Konkretes Beispiel:
Java:
int zahl = 1;
while (zahl <= 10) {
    System.out.println(zahl);
    zahl++;
}

Damit sind wir auch schon bei der for-Schleife. Die ist der while-Schleife sehr ähnlich:
Java:
for (initialisierung; bedingung; inkrement) {
    anweisung(en);
}
Die initialisierung wird ein einziges mal, noch vor der eigentlichen Schleife ausgeführt. Wie bei der while-Schleife wird auch bei der for-Schleife die bedingung vor dem Schleifendurchlauf überprüft. Besonders interessant an der for-Schleife ist inkrement. Dieser Teil wird am Ende eines Schleifendurchlaufs, also nach den anweisung(en), ausgeführt.

Das while-Beispiel von oben lässt sich somit auch als for-Schleife schreiben:
Java:
for (int zahl = 1; zahl <= 10; zahl++) {
    System.out.println(zahl);
}
(Anmerkung: da der Rumpf nur aus einer einzigen Anweisung besteht, hätte man hier die geschweiften Klammern auch weglassen können)

Bei Fragen einfach fragen.
 
Vielen Dank, das hat mir wirklich sehr geholfen!!
Habe schon ein bisschen mit den Schleifen rum probiert und ich habe es jetzt denke ich gut verstanden.
Vielen Dank an alle!
 
Dann wäre da noch die do-while Schleife.
Diese Schleife funktioniert ähnlich wie die while-schleife, mit dem Unterschied, dass die Anweisungen mindestens einmal ausgeführt werden. Also:
Java:
do {
   Anweisung(en);
} while (Bedingung);

Ich denke diese Variante eignet sich für dich am besten, da du deine Anweisung (Ich glaube es war ein Login?) ja mindestens einmal ausgeführt haben musst.
 
Richtig, das fällt in die zweite Kategorie, bei der die Bedingung nach dem Schleifendurchlauf überprüft wird.

Um die Verwirrung komplett zu machen: es gibt noch eine weitere Art, nämlich for-each-Schleifen.

In Java kann über bestimmte Objekte iteriert werden, dazu zählen Arrays und alles, was Iterable implementiert (z. B. Collection-Klassen). Jetzt etwas salopp und technisch nicht korrekt ausgedrückt: ein solches Objekt liefert so lange Elemente, bis es der Meinung ist, dass es keine mehr hat. Mit einer for-each-Schleife kann der Schleifenrumpf für jedes dieser Elemente ausgeführt werden:
Java:
String[] namen = {"Hans", "Gustav", "Franz"};
for (String name : namen) {
    System.out.println(name);
}
 

Zurück
Oben