Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Maj 2009

problem med en if else sats

jag försöker göra en frågesport i java.

varför hoppar programmet över if-satsen? vad jag än skriver in som svar, så blir det "Fel!" antar att jag skrivit string-variablerna fel på nåt sätt... skulle också vilja att programmet i slutet talar om om man klarade det eller inte beroende på vad man svarar...
tacksam för all hjälp!!

import javax.swing.*;

public class Test3 {

public static void main(String [] arg) {
String fråga; //här får jag inte till det...
String svar;
JOptionPane.showMessageDialog(null, "Välkommen");
fråga = JOptionPane.showInputDialog("fråga?");
if (svar.equals("rätt svar"))
JOptionPane.showMessageDialog(null, "Rätt!");

else

JOptionPane.showMessageDialog(null, "Fel!");

System.exit(0);
}
}

Trädvy Permalänk
Medlem
Registrerad
Mar 2006

Det jag ser så här på en gång är att du har skrivit fel på ett ställe:

fråga = JOptionPane.showInputDialog("fråga?");

Det ska väll ändå inte vara fråga som lagrar det användaren matar in?
Det måste bli något så här:

svar = JOptionPane.showInputDialog("fråga?");

MVH

EDIT: det blir fel ibland

"There are only 10 types of people in the world: Those who understand binary, and those who don't"

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

fast bara ett =

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Maj 2009

ja, med bara ett likhetstecken gick det utmärkt! tack så hemskt mycket för hjälpen, kände på mig att jag var nära=) har bara en fråga till: om jag vill att man ska kunna skriva svaret med både stora och små bokstäver, och få rätt svar oavsett, hur gör jag då??

Trädvy Permalänk
Medlem
Registrerad
Mar 2006

if (svar.equalsIgnoreCase("rätt svar"))

Ett tips är att kolla javas api, där står mycket om alt möjligt!

"There are only 10 types of people in the world: Those who understand binary, and those who don't"

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

du använder klassen Strings inbyggda metod toLowerCase():

if (svar.toLowerCase().equals("rätt svar"))

Tänk förresten på att du definierat en variabel som heter fråga i det första exemplet. Då du inte tilldelar ett värde eller ens använder den, kan du ta bort den raden utan problem

edit: Hade ingen aning om equalsIgnoreCase(), bra tips, tack

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Maj 2009

just det, det känner jag igen! om jag vill få frågorna att fortsätta till slutet, måste jag använda else if då? eller kan jag fortsätta skriva likadana if-satser? antog att det bara var att fortsätta med en ny fråga och en ny if-sats, men får felsvar: else without if. som sagt, ganska mycket nybörjare=)

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Maj 2009

tror faktiskt jag löste det nu! tack så jättemycket allihop för hjälpen!! blev precis medlem här, och det verkar ju riktigt bra! hör av mig om jag skulle få mer bekymmer=)