Loop -, Repeat-Programm in Java (Java-Anfänger-Frage)
Ich soll, wenn der Benutzer geben Sie eine beliebige Auswahl (1,2,3,4) es wird dem Benutzer zeigen (Noch unter Verengung) dann bekommt er zurück, um das Programm erneut. wie kann ich das mit if-Anweisung oder auf andere Weise, dann SWTICH-Methode??
import java.util.Scanner;
public class Tt {
public static void main(String [] args) {
Scanner kb= new Scanner (System.in);
int choice;
do{
System.out.println("Please enter your choice from the following menu:");
System.out.println("1. Enter student tanscript");
System.out.println("2. Display transcript summary");
System.out.println("3. Read student transcript from a file");
System.out.println("4. Write 1transcript summary to a file");
System.out.println("5. Exit");
choice = kb.nextInt();
switch (choice) {
case 1:
case 2:
case 3:
case 4:
System.out.println("Under construction");
System.out.println();
break;
case 5:
break;
}
}while (choice > 0 && choice < 5);
}
}
- Es sieht aus wie Sie bereits Ihre eigene Frage beantwortet?
- Ja aber ich will einen anderen Weg dann die Switch-Methode? gibt es eine?
- Sicher, man kann eine delegation oder Komposition, oder etc..., Was Sie suchen, zu tun? Ich kann zeigen einige der Optionen, die Sie einfach nicht wissen, was Sie nach, wie es scheint, dass dies eine gültige option.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt Schalter haben, könnten Sie ein array von option-Vollzieher. Wenn der Benutzer trifft eine Zahl (also 1) es bezieht sich auf das array-element 0, welches dann ausgeführt wird. Dies ermöglicht eine bessere Erweiterbarkeit, wie Sie können, erstellen Sie einfach neue Vollstrecker.
oder
EDIT: Wenn Sie wollen, dass Raum für die Durchführung jeder option (ähnlich dem, was Ihre switch-Anweisung gibt Ihnen jetzt), können Sie schreiben es so:
Bin ich mir auch nicht sicher, was genau du meinst mit der Frage. Wollen Sie dem Benutzer erlauben, noch einmal zu wählen, wenn Sie wählen ein 'under construction' - option? In diesem Fall würde ich brechen Sie aus in eine Methode wieder aufgerufen, um das Menü wieder.
Wenn Sie möchten, entfernen Sie die langen switch-Anweisung, Sie könnte möglicherweise erstellen Sie eine
Map<int, MenuAction>
, woMenuAction
ist eine Schnittstelle, die eine Methode hatDoAction
führt, dass das Verhalten.Man könnte sogar noch weiter gehen, und erstellen Sie eine
StudentTranscriptAction
,TranscriptSummaryAction
etc. erbtUnderConstructionAction
, hat aber eineDescription
Feld, und verwenden Sie diese, um den Aufbau der Menü-Ausgabe.Hinweis: ich habe wenig getan, Java, und noch nicht getestet code.
Vielleicht pattern-matching?
Alternative zu ICR ' s Antwort ist mit der Observer-Muster. Wenn eine Auswahl getroffen, wird ein Ereignis erzeugt (wie, wenn ein JButton gedrückt wird), und es können weitere Objekte abonnieren, die Veranstaltung.
Können Sie lokal behandeln Sie das Ereignis, wie das Java-Swing-Architektur ist, oder gehen Sie für einen zentralen Event-Bus wie in der Architektur.
Auf der einen Seite, dem observer-Muster ist leicht erweiterbar, da müssen Sie nicht zum ändern der MainClass-code, auf der anderen Seite könnte es der code weniger transparent als alles abhängig von der Laufzeit-Konfiguration - die Zuhörer haben selbst registriert.
Haben Sie auch einen Blick auf die Beispiele in der ultimative Ort des Wissens, wikipedia 🙂
Beispiel: