Probleem in code

Status
Niet open voor verdere reacties.

Critias

Nieuwe gebruiker
Lid geworden
8 jan 2010
Berichten
1
We moeten voort school een programma schrijven en dit hebben tot nu toe al,
we krijgen steeds een foutmelding, het rode vette
Kan er iemand helpen?

Klasse Test:
Code:
import java.util.Scanner;
import java.util.ArrayList;

public class Test {
    public Test() {
    }

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        VraagEnAntwoord vraagEnAnt = new VraagEnAntwoord();

       // ArrayList<Test> antwoord=new ArrayList<Test>();
       // VraagEnAntwoord vrgAntw = new VraagEnAntwoord();

        //antwoord.add(vrgAntw);


        vraagEnAnt.vraag();
        System.out.print(vraagEnAnt.toString());


        System.out.println("\nGeef het antwoord: \t");
        String Ingave = input.nextLine();
        vraagEnAnt.juistAntw();

        System.out.println(""+vraagEnAnt.juistAntw());
    }
}
Klasse VraagEnAntwoord
Code:
public class VraagEnAntwoord extends Test {


       private String  vraag;
       public String[] Antwoord = new String [300];
       private String[] Ingave;

    public void vraag() {
        vraag=new String ("Wie is de beste juf?"+"\n");
        Antwoord = new String[]{"Anniek", "Fien", "Lotte"};

    }

    public void setAntwoord(String[] Ingave) {
        this.Ingave = Ingave;
    }

    public String juistAntw(){


  [B][COLOR="Red"]   if (juistAntw().equalsIgnoreCase("Anniek") ) {[/COLOR][/B]
            System.out.println("Correct! " + "Anniek" + " was het juiste antwoord.");
        } else {
            System.out.println("Fout! Het juiste antwoord was: "+"Anniek");
        }return juistAntw();
  }    

@Override
    public String toString() {
        String str="";
        str+= "Vraag = "+ vraag;

        for (String s : Antwoord) {
            str+="\n"+s;
        }

        return str;//To change body of overridden methods use File | Settings | File Templates.
    }


}
 
Laatst bewerkt door een moderator:
mooi runtime foutje, geeft waarschijnlijk een stack overflow...

Code:
public String[COLOR="Red"] juistAntw()[/COLOR] {


     if ([COLOR="Red"]juistAntw()[/COLOR].equalsIgnoreCase("Anniek") ) {
            System.out.println("Correct! " + "Anniek" + " was het juiste antwoord.");
        } else {
            System.out.println("Fout! Het juiste antwoord was: "+"Anniek");
        }return juistAntw();
  }
Het eerste wat je oproept in juistAntw() is juistAntw() die roept op zijn beurt juistAntw() die roept op zijn beurt juistAntw() die roept op zijn beurt juistAntw() enz...

wat je wilt hebben is iets als (hoewel dit specifiek voorbeeld weinig nut heeft...):

Code:
public String juistAntw() {

 for(String str : Antwoord) {
     if (str.equalsIgnoreCase("Anniek") ) {
            System.out.println("Correct! " + "Anniek" + " was het juiste antwoord.");
        } else {
            System.out.println("Fout! Het juiste antwoord was: "+"Anniek");
        }return "Anniek";
  }
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan