webForumDet fria alternativet

Glosprogram i Java

3 svar · 1 143 visningar · startad av rikard81

rikard81Medlem sedan mars 2007311 inlägg
#1

Håller på att utveckla ett litet enkelt glosprogram, men får inte räkningen att stämma. När man för in rätt ord så vill jag att variabeln a resp b blir ett. Men får det inte att stämma. Vill att vid rätt svar så räknas det in i totSumman och plusar ihop det och presenterar antal rätta svar i en dialogruta.

import javax.swing.*;

public class loppar {
    public static void main (String [] arg) {
        
        String indata;
        String namn;
        int alder, start;
        int a,b;
        int totSumma;
        
        start=JOptionPane.showConfirmDialog (null, "Vill du starta glostestet version 1.0?");
        
        if (start == 0) {
            indata=JOptionPane.showInputDialog ("Ange ditt förnamn?");
            namn= indata;
            String message = "Välkommen " + namn + "\n" + "Du kommer nu att få svara på ett antal frågor." + "\n"
            + "Du fyller i ditt svar i fältet och klickar dig sedan vidare." + "\n" + "Du kan när som "+
            "helst avbryta testet genom att trycka på avbryt.";
            JOptionPane.showMessageDialog (null, message);
        }
        
        indata=JOptionPane.showInputDialog ("Vad heter hund på engelska");
        String q1=indata;
        
        if (q1 == "dog") {
            a++;        }
        
        indata=JOptionPane.showInputDialog ("Vad heter katt på engelska?");
        String q2=indata;
        
        if (q2 == "cat") {
            b++;        }
        
        totSumma=a+b;
        
        String message = "Grattis. Du har nu slutfört testet och du hade " + totSumma +" rätt";
        JOptionPane.showMessageDialog (null, message);
        
        System.exit (0);
        
    }
}
ercizMedlem sedan maj 20011 826 inlägg
#2

Du skriver ju inte vad du får för fel.

Men du har glömt att nollställa a och b. Du måste sätta dem till 0 ibörjan, så att du kan räkna upp dem sen.

När du jämför strängar ska du använda .equals() och inte == så byt ut q1 == "dog" till q1.equals("dog") o.s.v.

rikard81Medlem sedan mars 2007311 inlägg
#3

erciz skrev:

Du skriver ju inte vad du får för fel.

Men du har glömt att nollställa a och b. Du måste sätta dem till 0 ibörjan, så att du kan räkna upp dem sen.

När du jämför strängar ska du använda .equals() och inte == så byt ut q1 == "dog" till q1.equals("dog") o.s.v.

Felet blir när den räknar upp antal rätta svar. Har jag svarat rätt på bägge frågorna så står det att jag har 0 rätt. Nollar jag a och b så funkar det ändå inte. Ska prova.

rikard81Medlem sedan mars 2007311 inlägg
#4

Aha. Nu funkar det. Bra att man lär sig nått nytt hela tiden. Så kort sagt går det inte att jämföra ord med ==. Man måste då använda equals. :-)

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)