Java < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:19 Fr 24.02.2006 | Autor: | vivi |
Hallo an alle!
Da es in Java keine goto funktion gibt wollte ich fragen
ob es sprungadressen gibt.
Und falls ja, wie bestimmt man sie?
Gruß, Vivi
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:40 Fr 24.02.2006 | Autor: | Frank05 |
> Da es in Java keine goto funktion gibt wollte ich fragen
> ob es sprungadressen gibt.
> Und falls ja, wie bestimmt man sie?
Prinzipiell ist das Schöne an Java, dass man eben gerade keine Möglichkeit hat an interne Speicheradressen heranzukommen. Es gibt keine Zeiger-Arithmetik und auch überhaupt keinen (Basis-)Typ für Zeiger. Und wie du schon richtig erkannt hast gibt es auch kein goto Statement.
Sprungadressen gibt es dennoch immer, sobald man das Programm auf einem genügend niedrigen Level betrachtet. Bei Java wäre hier wohl der vom Compiler generierte Bytecode das Mittel der Wahl. Wobei es vielleicht etwas hilfreicher wäre, wenn du noch ein wenig erklären könntest, wofür du diese Sprungadressen denn bestimmen willst?
Es stellt sich auch die Frage, an welcher Art von Sprungadressen du interessiert bist. Da es kein goto gibt ist ein bel. Sprung an irgendein Ziel schonmal nicht möglich. Es verbleiben natürlich weiterhin "Sprünge" bei Methodenaufrufen, if-Anweisungen, u.ä.
PS: Es gibt in Java eine Art abgeschwächtes goto bei den break und continue Befehlen [1]. Diesen kann alternativ ein Label als Argument gegeben werden, was dann dazu führt, dass nicht nur die aktuelle Schleife verlassen/fortgesetzt wird, sondern die durch das Label angegebene Schleife betroffen ist.
[1] Java Language Specification
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:21 Sa 25.02.2006 | Autor: | vivi |
Hallo!
Ich wollte diese goto Funktion in eine Art Fragespiel integrieren. Also d.h. so ein Test wo der User seine Antworten eingeben kann. Falls er aber dann was falsches auf die Frage eingibt, wollte ich, dass das Programm eine Fehlermeldung anzeigt und wieder ab der Frage startet, damit der User etwas richtiges eingeben kann.
|
|
|
|
|
Sowas macht man in Java anders.
Am einfachsten ist, wenn Du Dir eine Methode schreibst, die die Frage stellt und die Antwort auswertet (Das kannst Du ruhig weiter verfeinern, in dem Frage stellen, Antwort annehmen und auswerten etc. eventuell noch in eigenen Methoden stattfinden, aber musst Du nicht, wenn Dir das zu kompliziert wird).
Rückgabewert der Methode ist vom Typ boolean; TRUE, wenn die Frage richtig beantwortet wurde und FALSE wenn nicht.
Dann rufst Du diese Methode in einer Schleife auf, die solange läuft, bis die Frage richtig beantwortet wurde.
Beispiel:
public class FrageSpiel{
private boolean frageStellen(){
.......
}
public static void main(String[] args){
...
while(!frageStellen()) System.out.println("Leider falsche Antwort, probier es nochmal!");
...
}
}
Alles klar?
|
|
|
|