Java beginner probleem

Status
Niet open voor verdere reacties.

EddyGonzales

Nieuwe gebruiker
Lid geworden
12 aug 2010
Berichten
2
Beste mensen,

Ik wil in Java een programmaatje maken die een quizvraag stelt, die beantwoord moet worden en vervolgens het resultaat toont met een pop-up. Hoort vrij simpel te zijn, maar voor een java-beginneling als ik niet echt.

Tot nu toe heb ik dit:
(een simpele vraag erin verwerkt, maar daar gaat het niet om)

Code:
import javax.swing.JOptionPane;

public class Quizvraag {


	public class Quiz {
		public void main(String[] args) {
			String input = JOptionPane.showInputDialog(null, "Wat is de hoofdstad van Nederland?", "invoer", JOptionPane.QUESTION_MESSAGE);
			
			int respons = Integer.parseInt(input)
			if (respons = Amsterdam){
				resultaat = "goed";
			}
			
			else{
				resultaat = "fout";
			}

			JOptionPane.showMessageDIalog(null, resultaat, "antwoord", JOptionPane.INFORMATION_MESSAGE);
			
		system.exit(0);
	}

}
 
Zitten redelijk wat fouten in, maar de kern van het programma was goed. ;)

Alles achter slashes is commentaar op de fouten, je kunt dit verwijderen als je het niet meer wilt zien zonder dat het effect heeft voor het programma.
Code:
import javax.swing.JOptionPane;

/**@ToDo:
 * Als de gebruiker niets invult ontstaat een java.lang.NullPointerException.
 */
public class Quizvraag {

    //'public class Quiz {' verwijdert, je hebt al de class Quizvraag, je hoeft dus niet nog een class daarin te maken.
    public static void main(String[] args) {    //Gebruik 'public static void main' i.p.v. 'public void main', daar begint je programma als je hem start.
        String input = JOptionPane.showInputDialog(null, "Wat is de hoofdstad van Nederland?", "invoer", JOptionPane.QUESTION_MESSAGE);
        //int respons = Integer.parseInt(input) onnodig, je probeert wat de gebruiker ingeeft om te zetten naar een getal. Ook kan een gebruiker iets anders invoeren als een getal.
        //Vanaf hier heb ik respons veranderd naar input.
        if (input.equals("Amsterdam")) { //Als je een vergelijking maakt '==' gebruiken in plaats van '='. Nog iets, Java heeft liever dat je bij het vergelijken van text (Strings) .equals() gebruikt omdat dit beter werkt.
            //Als je 'Amsterdam' schrijft zoekt Java naar een variabele Amsterdam. Dat is niet wat je wilt dus gebruik "Amsterdam" zodat hij de tekst Amsterdam gebruikt.
            input = "goed";
        } else {
            input = "fout";
        }

        JOptionPane.showMessageDialog(null, input, "antwoord", JOptionPane.INFORMATION_MESSAGE); //Typefout, Java is hoofdlettergevoelig; showMessageDialog i.p.v. showMessageDIalog.

        System.exit(0); //Typefout, Java is hoofdlettergevoelig; System i.p.v. system.
    }
}
 
5i5, erg bedankt voor je reactie en de correcties.

Het 'static' woordje gaf eclipse aan als een fout, vond het al vreemd, maar met deze code geeft eclipse de fout niet aan.

Het werkt, bedankt!
 
Als je tekst in Java wilt vergelijken met elkaar en je gebruikt "==" gaat hij de geheugen locatie van de variabel met elkaar controleren. Dat wil je niet, want je wil de inhoud van de tekst met elkaar vergelijken, daarom gebruik .equals("tekst").

Verder ben ik het helemaal met 5i5 eens! ;)

Zitten redelijk wat fouten in, maar de kern van het programma was goed. ;)

Alles achter slashes is commentaar op de fouten, je kunt dit verwijderen als je het niet meer wilt zien zonder dat het effect heeft voor het programma.
Code:
import javax.swing.JOptionPane;

/**@ToDo:
 * Als de gebruiker niets invult ontstaat een java.lang.NullPointerException.
 */
public class Quizvraag {

    //'public class Quiz {' verwijdert, je hebt al de class Quizvraag, je hoeft dus niet nog een class daarin te maken.
    public static void main(String[] args) {    //Gebruik 'public static void main' i.p.v. 'public void main', daar begint je programma als je hem start.
        String input = JOptionPane.showInputDialog(null, "Wat is de hoofdstad van Nederland?", "invoer", JOptionPane.QUESTION_MESSAGE);
        //int respons = Integer.parseInt(input) onnodig, je probeert wat de gebruiker ingeeft om te zetten naar een getal. Ook kan een gebruiker iets anders invoeren als een getal.
        //Vanaf hier heb ik respons veranderd naar input.
        if (input.equals("Amsterdam")) { //Als je een vergelijking maakt '==' gebruiken in plaats van '='. Nog iets, Java heeft liever dat je bij het vergelijken van text (Strings) .equals() gebruikt omdat dit beter werkt.
            //Als je 'Amsterdam' schrijft zoekt Java naar een variabele Amsterdam. Dat is niet wat je wilt dus gebruik "Amsterdam" zodat hij de tekst Amsterdam gebruikt.
            input = "goed";
        } else {
            input = "fout";
        }

        JOptionPane.showMessageDialog(null, input, "antwoord", JOptionPane.INFORMATION_MESSAGE); //Typefout, Java is hoofdlettergevoelig; showMessageDialog i.p.v. showMessageDIalog.

        System.exit(0); //Typefout, Java is hoofdlettergevoelig; System i.p.v. system.
    }
}
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan