Von A nach B springen

System_Samy

Mitglied
Hallo Leute, ich hab im Internet bereits recherchiert, allerdings finde ich da keine wirkliche Lösung, bzw verstehe diese dann nicht.

Folgendes, ich habe eine If Anweisung, der Benutzer wird aufgefordert einen Zahlenwert zwischen 1 und 3 einzugeben, ne nach Eingabe erhält er dann Informationen, nun soll er aber nachdem er eine Eingabe gemacht hat direkt wieder an den Beginn der If Anweisung gebracht werden, um auch die anderen Zahlen eingeben zu können um auch an diese Informationen zu gelangen, in Code Form:


int = auswahl;

System.out.println("1: Informationen über technische Daten");
System.out.println("2: Informationen über wirtschaftliche Daten");

(hier beginnt PUNKT X)
System.out.println("Treffen Sie ihre Auswahl und bestätigen Sie mit der Entertaste");
auswahl = readInteger(); //IOTools

if(auswahl == 1) {
System.out.println("Text mit Informationen über technische Daten");
Springe zurück zu Punkt X
}

if(auswahl == 2) {
System.out.println("Text mit Informationen über wirtschaftliche Daten");
Springe zurück zu Punkt X
}



//

Die Frage ist jetzt, wie schreibe ich das rot markierte in Codeform? Also wie setze ich das um?
 
Zuletzt bearbeitet:

Tobse

Top Contributor
Das ganze nennt sich goto. In Java gibt es das aber nicht, weil es worst Practice ist. Gotos verursachen sogenannten "Spagetticode" und machen viel mehr Kaputt als sie helfen (wie man erst diese Woche am fatalen gotofail-Bug von Apple gesehn hat).
Spalte deinen Code in Methoden und alles wird gut.
 

klauskarambulut

Bekanntes Mitglied
Das Konzept, dass sich hinter der Fragestellung verbirgt, nennt sich REPL.
Read Evaluate Print Loop.

Java:
private static boolean isRunning = true;

public static void main(String[] args) {
  while(isRunning) {
    int selection = read();
    String result = evaluate(i);
    print(result);
  }
}

public static int read() {
  System.out.println("1: Informationen über technische Daten");
  System.out.println("2: Informationen über wirtschaftliche Daten");
  System.out.println("Treffen Sie ihre Auswahl und bestätigen Sie mit der Entertaste");
  return readInteger(); 
}

public static String evaluate(int i) {
  switch(i) {
    case 1: return "Technische Daten bla bla";
    case 2: return "Wirtschaftliche Daten bla bla";
    default: isRunning = false;
                return "Bye, and have a nice day";
  }
}

public static void print(String text) {
  System.out.println(text);
}
 

Tobse

Top Contributor
Das Konzept, dass sich hinter der Fragestellung verbirgt, nennt sich REPL.
Read Evaluate Print Loop.

Java:
private static boolean isRunning = true;

public static void main(String[] args) {
  while(isRunning) {
    int selection = read();
    String result = evaluate(i);
    print(result);
  }
}

public static int read() {
  System.out.println("1: Informationen über technische Daten");
  System.out.println("2: Informationen über wirtschaftliche Daten");
  System.out.println("Treffen Sie ihre Auswahl und bestätigen Sie mit der Entertaste");
  return readInteger(); 
}

public static String evaluate(int i) {
  switch(i) {
    case 1: return "Technische Daten bla bla";
    case 2: return "Wirtschaftliche Daten bla bla";
    default: isRunning = false;
                return "Bye, and have a nice day";
  }
}

public static void print(String text) {
  System.out.println(text);
}

Das ist ja vorgekaut (und das nichtmal gut), das bringt dem TO nicht viel.

@TO:
Ein Beispiel, wie gotos funktionieren und wie man es beser machen kann:
Folgender code wäre mit Schleife:
Java:
int i = 0;
while (i < 10)
{
    i++;
    System.out.println(i);
}
Folgender mit gotos:
Java:
int i = 0;
loopStart:
i++;
System.out.println(i);
if (i < 10)
{
    goto loopStart;
}

Du siehst auf anhieb: beim while-konstrukt ist sofort ersichtlich, welcher code wiederholt wird und wie oft. Bei GOTOs hast du erstens bei längerem Code seeeehr viele Sprunmarken und zweitens muss man immer genau hinschauen um rauszufinden, welcher code wann und wie ausgeführt wird.


Um auf dein Problem zurückzukommen:
Java:
public static void main(String[] args)
{
    print();
    int input;
    while ((input = readInteger()) != 3)
    {
        if (input == 1)
        {
            // text 1 ausgeben
        }
        else if (input == 2)
        {
            // text 2 ausgeben
        }
        else
        {
            // input nicht erkannt
        }
    }
}
public void print()
{
    System.out.println("1: Text A\n2:Text B\n3: Exit");
}
 
Zuletzt bearbeitet:

System_Samy

Mitglied
Danke Tobse, bei deiner Lösung werde ich allerdings sofort wieder an den Beginn meiner Schleife geworfen, kann ich dieses zurückwerfen auch erst durch ein Tastendruck aktivieren?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Paul15 Nach vorne springen Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Jasypt/BouncyCastle Verschlüsselte Daten verloren nach wechsel? Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Vaadin+Spring Boot erster Seitenload nach Neustart endlos Frameworks - Spring, Play, Blade, Vaadin & Co 0
Zrebna Erste Steps mit Vaadin - via HotSwapAgent nach Code-Änderungen, Server-Restart vermeiden Frameworks - Spring, Play, Blade, Vaadin & Co 0
P Scanner nach bestimmter Zeit überspringen Frameworks - Spring, Play, Blade, Vaadin & Co 11
W Spring-Beans nach Einbindung von SpringSecurity null Frameworks - Spring, Play, Blade, Vaadin & Co 3
engelsteufelin Taschenrechner springt an Start nach falscher Eingabe Frameworks - Spring, Play, Blade, Vaadin & Co 7
N Wie eine JSF-Anwendung mit Spring nach EJB 3 migrieren? Frameworks - Spring, Play, Blade, Vaadin & Co 10
T Von JavaEE6 nach Spring Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring type conversion von String nach DateTime Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Zu bestimmte Stellen im code springen? Frameworks - Spring, Play, Blade, Vaadin & Co 8
Xentox501 Jump & Run: Beim springen bewegen(rechts,links) Frameworks - Spring, Play, Blade, Vaadin & Co 1
R Player springen lassen mit Gravity Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Springen mit Collision Detection? Frameworks - Spring, Play, Blade, Vaadin & Co 15
it_is_all Springen zw. JPanels mit setVisible() Frameworks - Spring, Play, Blade, Vaadin & Co 4
C Suche Tutorial für - Spielfiguren springen lassen Frameworks - Spring, Play, Blade, Vaadin & Co 4
A Springen an Seitenanfang verhindern Frameworks - Spring, Play, Blade, Vaadin & Co 5
G Springen mithilfe von Trigonometrie Frameworks - Spring, Play, Blade, Vaadin & Co 4
J Spieler springen lassen Frameworks - Spring, Play, Blade, Vaadin & Co 24
A RadioButtons springen nicht automatisch auf false Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Zum Code springen Frameworks - Spring, Play, Blade, Vaadin & Co 5
T DesktopPane mit GridLayout ohne, dass Fenster springen Frameworks - Spring, Play, Blade, Vaadin & Co 14
K von Button zu Zelle in Tabelle- zu anderer Zelle springen Frameworks - Spring, Play, Blade, Vaadin & Co 2
F.S.WhiTeY JSF: h:dataTable / p:DataGrid : Pagination und alphabetisch springen Frameworks - Spring, Play, Blade, Vaadin & Co 2
T OpenGL ES: Zoom und pan springen immer wieder zur Ausgangsposition zurück Frameworks - Spring, Play, Blade, Vaadin & Co 4
? In GZIPInputStream "springen" Frameworks - Spring, Play, Blade, Vaadin & Co 1
L \n , in die nächste Zeile springen Frameworks - Spring, Play, Blade, Vaadin & Co 11
M Zum Anfang eines Programmes springen Frameworks - Spring, Play, Blade, Vaadin & Co 2
S ...aus while schleife springen Frameworks - Spring, Play, Blade, Vaadin & Co 3
C Vom Case zur Case-Auswahl springen? Frameworks - Spring, Play, Blade, Vaadin & Co 9
R Txt Datei mit Notepad öffnen und zu bestimmter Zeile springen Frameworks - Spring, Play, Blade, Vaadin & Co 12
F GUI Seiten springen + Timer mit Eingabe Frameworks - Spring, Play, Blade, Vaadin & Co 8
G Cursor Positionieren/mit Tabulator springen? Frameworks - Spring, Play, Blade, Vaadin & Co 8
F In NetBeans zum nächsten Fehler springen Frameworks - Spring, Play, Blade, Vaadin & Co 7
K Zu Fehler im Projekt springen Frameworks - Spring, Play, Blade, Vaadin & Co 2
K Per Tastaturbefehl zu nächstem Lesezeichen springen Frameworks - Spring, Play, Blade, Vaadin & Co 2
J Zur Auffälligkeit springen - Shortcut Frameworks - Spring, Play, Blade, Vaadin & Co 7
E JTable neue Zeile springen?! Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Wenn Aufgaben erledigt sind, auf Programmanfang springen? Frameworks - Spring, Play, Blade, Vaadin & Co 12
J zu einer Zeile zürück springen Frameworks - Spring, Play, Blade, Vaadin & Co 9
R JEditorPane an bestimmte Stelle springen Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Direkt zur Methode springen die in der Klasse und nicht im Interface implementiert? Frameworks - Spring, Play, Blade, Vaadin & Co 4

Ähnliche Java Themen

Neue Themen


Oben