Avatar billede jannek_ek Nybegynder
28. december 2004 - 16:26 Der er 11 kommentarer og
1 løsning

hvordan laver man en "goto" i java??

jeg har arbejdet lidt med c++, men nu er jeg gået igang med java i stedet... men jeg savner den lille funktion fra c++, der hedder goto x; hvorefter den går direkte til x: men hvordan laver man den i java??
Avatar billede simonvalter Praktikant
28. december 2004 - 16:31 #1
der er ikke goto i java men måske er det en label du leder efter men det er ikke det samme som goto.

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/flowsummary.html
Avatar billede simonvalter Praktikant
28. december 2004 - 16:33 #2
Avatar billede jannek_ek Nybegynder
28. december 2004 - 16:37 #3
nej det er ikke den type

x:

få oplysning;

if (oplysning == x)
{
print: det er forkert
gå til x;
}

hvis det er til at forstå
Avatar billede jannek_ek Nybegynder
28. december 2004 - 16:37 #4
x:

få oplysning;

if (oplysning == y)
{
print: det er forkert
gå til x;
}
Avatar billede erikjacobsen Ekspert
28. december 2004 - 16:40 #5
Du skal nok bruge en whilesætning og en boolean. Der findes som sagt ikke goto
Avatar billede arne_v Ekspert
28. december 2004 - 16:41 #6
Som Simon skriver, så implementerer Java ikke goto.

Som et kuriosum kan det nævnes at det alligevel er et keyword.

http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#229308

The keywords const and goto are reserved, even though they are not currently used. This may allow a Java compiler to produce better error messages if these C++ keywords incorrectly appear in programs.
Avatar billede arne_v Ekspert
28. december 2004 - 16:48 #7
goto statement har iøvrigt været stærkt kritiseret i 36 år - jævnfør
f.eks. http://www.stevemcconnell.com/ccgoto.htm
Avatar billede jannek_ek Nybegynder
28. december 2004 - 16:57 #8
ok jeg dropper det med goto og laver en løkke i stedet...
men jeg har lidt svært ved at se hvem der skal ha pointne... jeg tror det er simon, så kom med et svar.
Avatar billede simonvalter Praktikant
28. december 2004 - 16:59 #9
ok
Avatar billede jakoba Nybegynder
28. december 2004 - 17:01 #10
Det er rigtig fydaføjda at bruge goto på den måde.
i C og C++ kan det nogen gange være en fordel at bruge sådan et 'hop' i usædvanlige situationer; men i Java er der ingen undskyldning. Der han man jo netop muligheeden for at kaste en exception i exceptionelle situationer.

men det her er ikke engang en exceptionel situation. alt du har brug for er en løkke:

do  //  x:      'do' fortæller at her begynder en løkke
{
    få oplysning;

    if (oplysning != y)
    {
        print: det er forkert
    }
} while ( oplysning != y );    // gentag indtil det korrekte svar kommer

Der er 2 STORE fordele ved at bruge en løkke:
1) vi kan nemt find den betingelse der afslutter løkken, den er enten forrest eller bagers i løkken.
2) Vi VED med 100% sikkerhed at den eneste måde for programmet at arbejde sig hen til løkkens begyndelse er ved at komme til den oppefra, eller ved at have udørt den lige før. ( så hvis du fx initialiserede variablen y med svaret lige ovenover, så ved du at y altid har lige præcis den værdi inde i løkken. Hvis folk kunne sprine hen til løkken fra 'gud ved hvor' mister du den viden, du kan ikke ano om de måske satte y til at have en anden værdi først).

mvh JakobA
Avatar billede arne_v Ekspert
28. december 2004 - 17:09 #11
re eksempel)

I nogle tilfælde vil det være en fordel at lave det som:

do  //  x:      'do' fortæller at her begynder en løkke
{
    få oplysning;
    boolean more = (oplysning != y);
    if (more)
    {
        print: det er forkert
    }
} while ( more );    // gentag indtil det korrekte svar kommer

hvis testen enten har side effects eller er ustabil.

Og så er vi ved det som Erik nævnte for en lille halv time siden.

re 1)

Det mener du ikke.

for(;;) {
  ...
  if(noget) break;
  ...
}
Avatar billede jannek_ek Nybegynder
28. december 2004 - 17:26 #12
tak for hjælpen...
jeg ved godt hvordan man laver løkker, men jeg tænkte bare at det ville være lettere med en goto dims end at lave det om til en løkke, men tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester