Permalänk
Medlem

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);
}
}

Permalänk
Medlem

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

Visa signatur

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

Permalänk
Medlem

fast bara ett =

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

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å??

Permalänk
Medlem

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

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

Visa signatur

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

Permalänk
Medlem

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

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

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=)

Permalänk
Medlem

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=)