Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 05:27

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[JAVA] Zurückspringen im Code

Discussion on [JAVA] Zurückspringen im Code within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
[JAVA] Zurückspringen im Code

Hallo!

Und zwar habe ich folgende Frage...

Ich möchte ein Programm (in Java) programmieren, dass Daten einer Person erfassen kann, sie in einer Textdatei abspeichern/auslesen kann usw..

Wenn ich also im Menü bin..

Person aufnehmen<1>
Personen auflisten<2>

und mich dafür entscheide, eine Person aufzunehmen gelange ich in das "Formular", in dem ich den Namen etc. eingeben kann. Anschließen soll der Person eine Möglichkeit gegeben werden, noch eine weitere Person aufzunehmen oder wieder zurück zum Menü zu gelangen.

Wie bekomme ich das hin? Ich würde gerne irgendwie wieder zurück an die Stelle im Code gehen, wo das Menü war. Dass es sich sozusagen wiederholt...

Dies habe ich glaube mal in C++ mit einer Do-While-Schleife gelöst oder so ist aber schon lange her, weshalb ich mich nicht mehr darin erinnern kann wie das genau ging.

PHP Code:
import java.io.*;

class 
person {
    
// Variablen
    
private static BufferedReader persEingabe = new BufferedReader(new InputStreamReader(System.in));
    private 
String nachname;
    private 
String vorname;
    private 
String anrede;
    private 
String email;

    
// Setter-Methoden
    
public void setNachname(String pBr) {
            
this.nachname pBr;
    }

    public 
void setVorname(String pBr) {
                
this.vorname pBr;
    }

    public 
void setAnrede(String pBr) {
                
this.anrede pBr;
    }

    public 
void setEmail(String pBr) {
                
this.email pBr;
    }

    public 
void addPers() {
                try {
                    
System.out.println("\nGeben Sie bitte die Daten ein:\n");

                    
System.out.println("     Name:");
                    
this.setNachname(persEingabe.readLine());

                    
System.out.println("  Vorname:");
                    
this.setVorname(persEingabe.readLine());

                    
System.out.println("   Anrede:");
                    
this.setAnrede(persEingabe.readLine());

                    
System.out.println("    eMail:");
                    
this.setEmail(persEingabe.readLine());

                    
System.out.println("\n\t\tStimmts (J/N)");
                    
String jnEingabe StdInput.readString("Eingabe: ");

                    if (
jnEingabe == "N" || jnEingabe == "n") {
                        
// Korrektur der Daten
                        
this.addPers();

                        } else if (
jnEingabe == "J" || jnEingabe == "j") {
                            
System.out.println("\tNoch eine Person aufnehmen? (J\\N)");
                            
jnEingabe StdInput.readString("Eingabe: ");

                            if (
jnEingabe == "N" || jnEingabe == "n") {
                            
//displayMenu();
                        
} else {
                            
this.addPers();
                            }
    }
                    }
                    catch (
IOException e) {
                    }
    } 
// addPers
// person 
PHP Code:
public class Projekt {

    public static 
void displayMenu() {

        
// Menü
        
System.out.println("      \nKontaktverwaltung");

        
System.out.println("\nMöchten Sie...\n");

        
System.out.println("       eine Person aufnehmen: > 1");
        
System.out.println("               Einträge auflisten: > 2");
        
System.out.println("                 Datei speichern: > 3");
        
System.out.println("    Personen aus Datei laden: > 4");
        
System.out.println("                  Datei loeschen: > 5");
        
System.out.println("      das Programm verlassen: > 6");

        
int mEingabe StdInput.readInt("Eingabe :");

        switch(
mEingabe) {
            case 
1:
                
//person.addPers(); Problem!
            
break;
            case 
2:
                
// Auslesen
            
break;
            case 
3:
                
// PrintWriter
            
break;
            case 
4:
                
// Scanner
            
break;
            case 
5:
                
// Delete file
            
break;
            default:
                
System.out.println("Ungueltige Eingabe!");
        }
    } 
// Menu

    
public static void main(String [] args) {
        
person p1[] = new person[6];
        
displayMenu();
    }

Mfg Wr3
Warnuk3r is offline  
Old 12/23/2012, 18:09   #2
 
elite*gold: 0
Join Date: Dec 2012
Posts: 65
Received Thanks: 11
du könntest es mit flags probieren um die main damit in einer endlosschleife auszuführen.

zb du willst ins menü->menüflag auf 1 setzen.wenn du aus dem menü willst setzt du es wieder auf 0 und springst wieder in den ausgangspunkt
Eerox is offline  
Thanks
1 User
Old 12/23/2012, 18:15   #3

 
Obilee's Avatar
 
elite*gold: 144
Join Date: May 2007
Posts: 62,459
Received Thanks: 29,541
Ein "GoTo" gibt es in Java nicht, aus gutem Grund.

Man kann jedoch wenn man unbedingt will sowas zaubern:

Code:
loops:
for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        break loops;
    }
}
Bei deinem Beispiel wär es aber sinnvoller "displayMenu()" in eine While(true) zu packen die erst beendet wird wenn jmd. "das Programm verlassen" auswählt. Ansonsten wiederholt es die Anfrage was man eingeben möchte unendlich oft.
Obilee is offline  
Thanks
1 User
Old 12/23/2012, 18:18   #4
 
elite*gold: 0
Join Date: Dec 2012
Posts: 65
Received Thanks: 11
Code:
loops:
for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        break loops;
    }
}

bei diesem break handelt es sich um das gleiche wie das continue; in c++?
Eerox is offline  
Old 12/23/2012, 18:31   #5
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Quote:
Originally Posted by Obilee View Post
Ein "GoTo" gibt es in Java nicht, aus gutem Grund.

Man kann jedoch wenn man unbedingt will sowas zaubern:

Code:
loops:
for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        break loops;
    }
}
Bei deinem Beispiel wär es aber sinnvoller "displayMenu()" in eine While(true) zu packen die erst beendet wird wenn jmd. "das Programm verlassen" auswählt. Ansonsten wiederholt es die Anfrage was man eingeben möchte unendlich oft.
Das hab ich auch schon gesehen, aber ich habe 2 Dateien, also müsste ich boolean weiter = true; auch in beiden Dateien rein packen, was ja eigentlich kein eleganter Weg wäre, oder? Vor allem, wenn das eigentlich nichts mit der Klasse "person" zutun hat...!?

Außerdem müsste ich dann ja noch die Konsole clearen und erneut die Ausgabe machen (also die Schleife). Bei C++ damals habe ich glaube ich immer gesehen, als ich so etwas ausprobiert habe. Kann ja auch keine elegante Lösung sein, oder?
Warnuk3r is offline  
Thanks
1 User
Old 12/23/2012, 18:39   #6
 
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
Quote:
bei diesem break handelt es sich um das gleiche wie das continue; in c++?
"continue" und "break" sind nicht das Gleiche:
- "continue" bricht den aktuellen Schleifendurchlauf ab
- "break" bricht die Schleife ab
.Infinite is offline  
Thanks
2 Users
Old 12/25/2012, 14:56   #7
 
elite*gold: 0
Join Date: Apr 2007
Posts: 30
Received Thanks: 2
du kannst displayMenu() ein rückgabewert zurückgeben lassen.
also public static boolean displayMenu(), dann bei case 6 oder so return false
und bei default: return true.

in der main methode
while(dispayMenu())
{
}

edit: hab gerade gesehen, dass du das Menu nur 1x anzeigen möchtest.
Dafür musst dann nur den System.out.print teil in eine eigene Methode schreiben
und den Input/switch-case teil in eine andere und diesen dann in der schleife immer
wieder aufrufen.
niko_d is offline  
Old 12/25/2012, 18:20   #8
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Also das Menü soll halt immer wieder angezeigt werden, wenn man zurück ins Menü kommt.

Menü -> Person aufnehmen -> Menü

Und dann ist man ganz normal wieder im Menü^^

Soweit ich das nun kapiert habe, mache ich das einfach mit einer While-Schleife und lass es ausgaben + Konsole clearen, da es mir ja sonst alles voll spammen würde.
Warnuk3r is offline  
Reply


Similar Threads Similar Threads
Beim Neuladen zurückspringen
03/06/2012 - Web Development - 4 Replies
Huhu, ich habe ein Frage bezüglich Web Development. Ich habe eine Seite, bei der es manchmal sinnvoll ist manuell und manchmal via Sprungmarken zu navigieren. Falls die Seite jetzt neu aufgerufen wird (z.B. durch ein Formular), dann springt er ja logischer Weise immer nach oben. Bekomme ich das irgendwie hin, dass er immer genau(!) an die Stelle springt, an die der Benutzer davor war. Mir fällt als einzige Lösung ein, dass ich immer Sprungmarken über jedes Formular mache und danach...
Java Beginner code written better
02/19/2012 - Tutorials - 1 Replies
n fact this is no tutorial as I won't show you how to build a program or accomplish a predefined result. This will just be a (short) list of code, that works, but could be written shorter and looks better. This "tutorial" is aimed at the very new Java coders as I think that most people who do Java for a while will have figured this out by themselves. Each part consists of 2 code-blocks. 1 with "someMethod()" containing the code a beginner might write. Then the 2nd code-block with a...
Java Code Search Request
01/06/2012 - General Coding - 9 Replies
Hallo Ich bin noch nicht ganz fit mit java, deswegen wollte ich euch bitten mir ein wenig hilfe zu geben. Und zwar werden seit gestern die Packete von DarkOrbit verschlüsselt, die ich natürlich entschlüsseln möchte. Nun hatte ich versucht den Weg zu verfolgen, bin zwar ein wenig weiter gekommen, doch immer noch nicht am Ziel. Das ganze kommuniziert über ein XMLSocket. Hier die HauptDatei: http://do.a.bpcdn.net/spacemap/main.swf
[Source Code] Zahlensystem Rechner [Java]
11/07/2011 - General Coding - 2 Replies
Schaut es euch an und ich wäre froh wenn ihr Verbesserungsvorschläge habt Auch wenn ihr Fragen habt bin ich natürlich bereit diese zu beantworten. Eine Erklärung zu dem Code befindet sich in den Kommentaren. Vllt kann es jemand gebrauchen, vllt aber auch nicht :P import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.lang.Object.*;
[Java] Code-Beispiele für String, Arrays und und...
06/02/2010 - Coding Tutorials - 9 Replies
Joa, da ich Heute meine Informatik Prüfung in der Uni hatte ( und es sollte wohl min. eine 2 raus gekommen sein ) hatte ich Gestern so in ner Stunde einige Code Beispiele für verschiedene Dinge geschrieben. Eins war wie man Strings verarbeiten kann, was man mit Arrays anstellen kann und noch so paar Allgemeine Sachen zur Vererbung und Klassen. Man sollte das hier nicht unbedingt als Tutorial sehen da ich euch eigentlich hier einfach nur Code reinhau den ihr direkt Ausführen könnt wenn ihr...



All times are GMT +1. The time now is 05:27.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.