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

frågesport i java

...har fått lite problem igen, om jag vill att programmet ska köras till sista frågan och att man då får "betyget" hur gör jag då...? kan jag ha flera else-satser?

import javax.swing.*;

public class Quiz {

public static void main(String [] arg) {

String svar;
JOptionPane.showMessageDialog(null, "Välkommen till filmquiz!");
svar = JOptionPane.showInputDialog("fråga 1?");
if (svar.equalsIgnoreCase("rätt svar"))
svar = JOptionPane.showInputDialog("fråga 2?");
if (svar.equalsIgnoreCase("rätt svar"))
svar = JOptionPane.showInputDialog("fråga 3");
if (svar.equalsIgnoreCase("rätt svar"))
//och så vidare...

JOptionPane.showMessageDialog(null, "Högsta poäng!");

else

JOptionPane.showMessageDialog(null, "dåligt!");

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

Om du menar att du vill nästla alla frågor skulle jag avråda dig till det. Lägg alla frågor i en lista och loopa igenom den och sammanställ sedan svaren när användaren han svarat på alla frågor.

Om du inte har koll på vad nästling är så har du ett exempel här:

if() { if() { if() { } else { // etc. } } else { } } else { }

Du skulle kunna göra något i stil med det här istället (Question är en klass du måste skapa själv):

// Deklarera en lista med frågorna. List<Question> questions = new ArrayList<Question>(); // Lägg in alla frågor i listan. int correct = 0; int wrong = 0; boolean answer; for(Question q : questions) { if(JOptionPane.showInputDialog(e.getQuestion()).equalsIgnoreCase(e.getCurrectAnswer())) { correct++; } else { wrong++; } } float score = ((float)correct/(float)questions.size())*100; JOptionPane.showMessageDialog("Du hade " + score + "% rätt.");

Nu fungerar säkert inte den här koden korrekt men jag hoppas du förstår vad jag menar.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2002

Du använder e istället för q.
wrong används ej
answer används ej

men annars ser det rätt ut

CPU: i7 6700k + Fractal Design S24 GPU: ASUS GeForce GTX 1070 8GB DUAL OC RAM: Kingston 16GB 2133MHz CL13 MB: MSI GAMING M7 PSU: EVGA Supernova G2 850W, 80+ Gold SSD: Samsung SM951 256GB M.2 NVMe + Samsung EVO 850 250GB M.2 Chassi: Fractal Design S OS: W10 Pro Skrämar: Acer XB270HU + 2x Dell U2412M
NAS: Synology DS415+ (4x WD RED 6 TB) Console: Xbox One

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

hm, förstår på sätt o vis, men inte riktigt hur jag ska få ihop det, skriver jag in alla frågor i början av programmet och sen int correct = 0;
int wrong = 0; etc.?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

Något i stil med det här kanske (koden är inte testad):

public class Quiz { private List<Question> questions = new ArrayList<Question>(); public Quiz() { questions.add(new Question("Vad heter jag?", "Quiz")); // Lägg in fler frågor här... int correct = 0; for(Question q : questions) { if(JOptionPane.showInputDialog(q.getQuestion()).equalsIgnoreCase(q.getCorrectAnswer())) { correct++; } } float score = ((float)correct/(float)questions.size())*100f; JOptionPane.showMessageDialog("Du svarade rätt på " + score + "% av " + questions.size() + " frågor."); } public static void main(String[] args) { new Quiz(); } class Question { private String question; private String correctAnswer; public Question(String question, String correctAnswer) { this.question = question; this.correctAnswer = correctAnswer; } public String getQuestion() { return question; } public String getCorrectAnswer() { return correctAnswer; } } }

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

hm, känns som att jag är lite för mycket nybörjare för att förstå era svar helt...

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

om jag vill använda en nästlad if-sats, betyder det att jag kan använda flera if och else, om jag lägger till "måsvingar"?

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

och om jag vill skapa en lista, skapar jag då ett till program där jag har alla frågor och anropar det från det andra programmet? ursäkta om jag låter väldigt okunnig, men har bara läst i knappt två månader=)

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2002
Citat:

Ursprungligen inskrivet av coka
om jag vill använda en nästlad if-sats, betyder det att jag kan använda flera if och else, om jag lägger till "måsvingar"?

Citat:

Ursprungligen inskrivet av coka
och om jag vill skapa en lista, skapar jag då ett till program där jag har alla frågor och anropar det från det andra programmet? ursäkta om jag låter väldigt okunnig, men har bara läst i knappt två månader=)

questions.add(new Question("Fråga 1?", "svar på fråga 1"));
questions.add(new Question("Fråga 2", "svar på fråga 2"));
questions.add(new Question("Fråga 3", "svar på fråga 3"));
questions.add(new Question("Fråga 4", "svar på fråga 4"));
...
...

CPU: i7 6700k + Fractal Design S24 GPU: ASUS GeForce GTX 1070 8GB DUAL OC RAM: Kingston 16GB 2133MHz CL13 MB: MSI GAMING M7 PSU: EVGA Supernova G2 850W, 80+ Gold SSD: Samsung SM951 256GB M.2 NVMe + Samsung EVO 850 250GB M.2 Chassi: Fractal Design S OS: W10 Pro Skrämar: Acer XB270HU + 2x Dell U2412M
NAS: Synology DS415+ (4x WD RED 6 TB) Console: Xbox One