22. november 2007 - 16:37Der er
21 kommentarer og 1 løsning
Gentage program x antal gange og tæl rigtige og forkerte op
Hej Eksperten.dk! Jeg er for nylig startet på Java, og er gået igang med at kode et tabeltræningsystem. Men jeg er æløbet ind i et problem: Jeg har en metode, udregning(), som jeg godt vil ha gentaget fx 10 gange. For hver gang den gentage kommer der et nyt regnestykke. Ny vil jeg godt have den til at tælle op hvor mange rigtige og hvor mange forkerte man har. Jeg har gjort et forsøg med en while-løkke, og en slags optælling, ved at lægge én til "antalRigtige" hver gang man har svaret rigtigt. Men systemet bliver ved med at give nye regnestykker, efter den har nået fx 10. Her er koden:
import java.util.Scanner;
public class Tabel { public static void main(String[] args) { System.out.println("Hej og velkommen!"); udregning(); }
public static void udregning() { java.util.Scanner tastatur = new java.util.Scanner(System.in); int randomInt, randomInt2, gaet, resultat, antalStykker, antalRigtige, antalForkerte; antalStykker = 1; antalRigtige = 0; antalForkerte = 0; randomInt = 2 + (int)(Math.random() * 9); randomInt2 = 2 + (int) (Math.random() * 9); while (antalStykker < 5) { System.out.println("Stykke: " + randomInt + "*" + randomInt2 + "."); gaet = tastatur.nextInt(); resultat = randomInt * randomInt2; if (gaet == resultat) { System.out.println("Du gaettede paa " + gaet + "... og det er .. RIGTIGT!!"); antalRigtige = antalRigtige + 1; udregning(); } else if (gaet != resultat) { System.out.println("Du gaettede paa " + gaet + "... og det er .. FORKERT!!"); antalForkerte = antalForkerte + 1; udregning(); } } System.out.println("Du har nu svaret på 50 regnestykker."); System.out.println("Rigtige: " + antalRigtige); System.out.println("Forkerte: " + antalForkerte); } }
Er jeg inde på noget af det rigtige, eller er det helt forkert?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
if (gaet == resultat) System.out.println("Du gaettede paa " + gaet + "... og det er .. RIGTIGT!!"); else if (gaet != resultat) System.out.println("Du gaettede paa " + gaet + "... og det er .. FORKERT!!");
problem igen. Den stopper fint osv, men den kommer med de samme regnestykker igen og igen. Men hvis jeg stopper programmet, og starter igen, så kommer et nyt regnestykke, som den også gentager. har læst noget om at en computer ikke kan generere tilfældige tal, men laver et nyt tal hvert millisekund, eller sådan noget?
hmm, er det bare mig eller kan jeg ikke finde det sted i while (antalStykker < 5) { System.out.println("Stykke: " + randomInt + "*" + randomInt2 + "."); gaet = tastatur.nextInt(); resultat = randomInt * randomInt2;
if (gaet == resultat) System.out.println("Du gaettede paa " + gaet + "... og det er .. RIGTIGT!!"); else if (gaet != resultat) System.out.println("Du gaettede paa " + gaet + "... og det er .. FORKERT!!");
antalStykker++; } hvor der b
liver lagt en ekstra i antalRigtige eller antalForkerte?
Hmm, det forstår jeg ikke. For hvis jeg sætter den til at give mig 50 regnestykker får jeg halvtreds af de samme. Hvordan kan jeg løse det? Det virkede før vi tilføjede antalStykker++;
skidegodt;) Tak for hjælpen og især for din tålmodighed overfor min uforståelighed her har du point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.