Avatar billede thomaz Nybegynder
11. september 2001 - 18:23 Der er 3 kommentarer og
2 løsninger

Rerkusiv kald med stopklods

Har følgende kodesstump:

import java.util.*;

public class tal implements Enumeration
{

tal a = new tal();        // a er en klasse indeholdende en Vector med strenge
Vector v = a.getVector();
Enumeration e = v.elements();

public tal()
{
  nextElement();
}

public Object nextElement()
{
  System.out.println(e.nextElement());
  return nextElement()
}

}

mit problem er følgende at når har skrevet min vector ud får jeg en fejlmeddelse. NoSuchelementException. Grunden er jo, at efter mit sidste element i vectoren ikke er flere elementer(nextElement). Hvordan får jeg lavet en stop betingelse i min rekursion, så jeg kun får skrevet det indhold jeg har i min vector. Har prøvet med  if(hasMoreElements)
            {
            ..............
            }
Men det virker ikke
Ved godt at man kan bruge Iteratoren Men jeg er desværre tvunget til at bruge Enumeration, også selvom der er forældet :-(

Avatar billede lbhansen Nybegynder
11. september 2001 - 18:43 #1
du kan implement implementere hasMoreElements()
Det er god skik for det kaldende program at teste for hasMoreElements
Avatar billede lbhansen Nybegynder
11. september 2001 - 18:44 #2
altså
public boolean hasMoreElements(){
  return e.hasMoreElements();
}
Avatar billede mipe1 Nybegynder
11. september 2001 - 21:33 #3
public Object nextElement() {
  if(e.hasMoreElements(){
  System.out.println(e.nextElement());
  return nextElement()
}


Avatar billede mipe1 Nybegynder
11. september 2001 - 21:34 #4
ups det gik lidt for hurtigt

metoden bliver nødt til at returnere noget i det sidste tilfælde også

public Object nextElement() {
  if(e.hasMoreElements(){
    System.out.println(e.nextElement());
    return nextElement()
  }
  else{
    return null;
  } 
}




Avatar billede thomaz Nybegynder
12. september 2001 - 00:24 #5
tak for hjælpen. Var lige gået i stå og havde brug for hjælp :-)
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