14. januar 2007 - 13:06Der er
7 kommentarer og 1 løsning
Hjælp! fejl i programmering.
Nedenstående programmering viser følgende fejl på linje 35 og 111.. Nogen der kan hjælpe?
public class Oelautomat { /* * Her kan I have referencer til de andre objekter jeres oelautomat * skal benytte, samt andre almindelige variable (int, boolean, String etc) */ //private <Klasse-navn> <navn paa objekt> = new <klasse-navn>(<evt. initialisering>); //private <Variabel-type> <navn paa variabel> = <vaerdi>;
/* * Dette er konstruktoeren for jeres oelautomatklasse. Altså det sted * instansen af denne klasse bliver oprettet. Her kan variable initialiseres * og objekter oprettes. */
public Oelautomat() {
} public void Start () { SimpleInput input = new SimpleInput(); boolean koerer = true; /* * De variable der placeres her ("udenfor" while-loekken) og initialieres/aendres * inde i while-loekken vil ikke forsvinde naar while-loekken starter forfra. * Variablen vil ogsaa kunne bruges naar while-loekken er feardig. */ String oensketoel; int penge = 0; System.out.println("Velkommen til oelautomaten"); /* * Dette er den foerste og yderste while-loekke. Saa laenge "koerer" er true * vil programmet koere og tage imod input fra brugeren. */ public Oelautomat () { opretOel("Carlsberg",6); opretOel("Tuborg",6); opretOel("Odin",5); opretOel("Pokal",4); opretOel("Royal",5); }
public void opretOel (String navn, int pris) { Oel nyOel = new Oel(navn,pris,ledigtOelnr); oeller[ledigtOelnr] = nyOel; ledigtOelnr++; System.out.println("Prisen for en "+navn+" er: "+pris); return; }
while(koerer) { oensketoel = "ingen oel valgt"; penge = 0; boolean handelIgang = true; while(handelIgang && koerer) { System.out.println("Indtast oeloenske, se valgt oel, se tilgaengelige oel, indkast penge eller stop automat:"); System.out.println("\"valg\" <oelnavn>"); System.out.println("\"seValg\""); System.out.println("\"indkast\" <antal penge>"); System.out.println("\"stop\"\n"); /* * Den foelgende linje er det sted programmet tager imod input fra brugeren. * Her saettes "ord" lig med den tekststreng brugeren indskriver. * Brug denne (... = input.nextWord()) hver gang der skal hentes en tekststreng * fra brugeren. Hvis man vil have et tal eller en boolean ind skal man bruge * hhv. input.nextInt() eller input.nextBoolean() * * HUSK: naar en handel er overstaaet skal "handelIgang" saettes til "false". * */ String ord = input.nextWord();
/* * <String-variabel med tekststreng>.equalsIgnoreCase(<String-variabel med tekststreng>) * undersoeger om de to tekststrenge er lig hinanden, uden at tage forskel paa * store og smaa bogstaver i betragtning. */ if(ord.equalsIgnoreCase("indkast")){ int indkastedePenge = input.nextInt(); if(indkastedePenge>0) { penge = penge + indkastedePenge; /* * Her kan det undersoeges om der er indkastet tilstraekkeligt med penge * og ud fra dette gaa videre. Hvis man har et objekt, der holder oeje med pengene * i automaten kan interaktion foregaa her. */ System.out.println("\nAntallet af indkastede penge er: "+penge+"\n"); } else { System.out.println("\nBeloebet skal vaere stoere end nul.\n"); } } else if(ord.equalsIgnoreCase("valg")) { oensketoel = input.nextWord(); System.out.println("Penge kan indkastes eller oel vaelges\n"+"Tilgaengelige oel er: "); /* * Bemaerk: Man kan aendres valget af en oel under selve handlen. * Dette skal aendes hvis det ikke passer med jeres design. * * Her kan man undersoege om oellen findes, og ud fra dette gaa videre */ } else if(ord.equalsIgnoreCase("sevalg")){ System.out.println("\nDen valgte oel er: "+oensketoel+"\n"); } else if(ord.equalsIgnoreCase("stop")) { System.out.println("\nAutomaten stoppes!\n"); koerer = false; } else { System.out.println("\nKommando ikke forstaaet."); System.out.println("Proev igen.\n"); } } }}
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.
Det er naturligvis lidt et gæt når du udelader selve fejlbeskeden, men så vidt jeg lige kan se er der to ting galt:
1) Metoden public void Start() afsluttes aldrig med en } 2) Du har to constructorer til Oelautomat med samme parametre - den tomme af dem skal vist fjernes.
Pidgeot -> Jeg har indsat en til } forneden, men den melder stadig samme fejl? Jeg har prøvet at fjerne den ene constructor, men den melder stadig samme fejl? Kalp-> jeg har fjernet ledigtoelnr.
public class Oelautomat { /* * Her kan I have referencer til de andre objekter jeres oelautomat * skal benytte, samt andre almindelige variable (int, boolean, String etc) */ //private <Klasse-navn> <navn paa objekt> = new <klasse-navn>(<evt. initialisering>); //private <Variabel-type> <navn paa variabel> = <vaerdi>;
/* * Dette er konstruktoeren for jeres oelautomatklasse. Altså det sted * instansen af denne klasse bliver oprettet. Her kan variable initialiseres * og objekter oprettes. */
public void Start () { SimpleInput input = new SimpleInput(); boolean koerer = true; /* * De variable der placeres her ("udenfor" while-loekken) og initialieres/aendres * inde i while-loekken vil ikke forsvinde naar while-loekken starter forfra. * Variablen vil ogsaa kunne bruges naar while-loekken er feardig. */ String oensketoel; int penge = 0; System.out.println("Velkommen til oelautomaten"); /* * Dette er den foerste og yderste while-loekke. Saa laenge "koerer" er true * vil programmet koere og tage imod input fra brugeren. */ public void Oelautomat () { opretOel("Carlsberg",6); opretOel("Tuborg",6); opretOel("Odin",5); opretOel("Pokal",4); opretOel("Royal",5); }
public void opretOel (String navn, int pris) { Oel nyOel = new Oel(navn,pris); System.out.println("Prisen for en "+navn+" er: "+pris); return; }
while(koerer) { oensketoel = "ingen oel valgt"; penge = 0; boolean handelIgang = true; while(handelIgang && koerer) { System.out.println("Indtast oeloenske, se valgt oel, se tilgaengelige oel, indkast penge eller stop automat:"); System.out.println("\"valg\" <oelnavn>"); System.out.println("\"seValg\""); System.out.println("\"indkast\" <antal penge>"); System.out.println("\"stop\"\n"); /* * Den foelgende linje er det sted programmet tager imod input fra brugeren. * Her saettes "ord" lig med den tekststreng brugeren indskriver. * Brug denne (... = input.nextWord()) hver gang der skal hentes en tekststreng * fra brugeren. Hvis man vil have et tal eller en boolean ind skal man bruge * hhv. input.nextInt() eller input.nextBoolean() * * HUSK: naar en handel er overstaaet skal "handelIgang" saettes til "false". * */ String ord = input.nextWord();
/* * <String-variabel med tekststreng>.equalsIgnoreCase(<String-variabel med tekststreng>) * undersoeger om de to tekststrenge er lig hinanden, uden at tage forskel paa * store og smaa bogstaver i betragtning. */ if(ord.equalsIgnoreCase("indkast")){ int indkastedePenge = input.nextInt(); if(indkastedePenge>0) { penge = penge + indkastedePenge; /* * Her kan det undersoeges om der er indkastet tilstraekkeligt med penge * og ud fra dette gaa videre. Hvis man har et objekt, der holder oeje med pengene * i automaten kan interaktion foregaa her. */ System.out.println("\nAntallet af indkastede penge er: "+penge+"\n"); } else { System.out.println("\nBeloebet skal vaere stoere end nul.\n"); } } else if(ord.equalsIgnoreCase("valg")) { oensketoel = input.nextWord(); System.out.println("Penge kan indkastes eller oel vaelges\n"+"Tilgaengelige oel er: "); /* * Bemaerk: Man kan aendres valget af en oel under selve handlen. * Dette skal aendes hvis det ikke passer med jeres design. * * Her kan man undersoege om oellen findes, og ud fra dette gaa videre */ } else if(ord.equalsIgnoreCase("sevalg")){ System.out.println("\nDen valgte oel er: "+oensketoel+"\n"); } else if(ord.equalsIgnoreCase("stop")) { System.out.println("\nAutomaten stoppes!\n"); koerer = false; } else { System.out.println("\nKommando ikke forstaaet."); System.out.println("Proev igen.\n"); } } }}}
Du afslutter STADIG ikke Start-metoden det rigtige sted - } skal jo være oppe før linie 32, da det er der den slutter (det er derfor du får den fejl i linie 32).
Desuden sagde jeg intet om at du skulle lave den constructor på linie 32 om til en almindelig metode, du skulle fjerne den øverste af dem, fordi det måtte være den nederste der var den rigtige.
Den sidste af fejlene kommer utvivlsomt fra at du har rod i dine tuborg-klammer. Nu ved jeg ikke om du bruger en IDE, eller hvad du gør, men hvis du gør og får den til at formatere koden lidt pænt, kan du sikkert se det noget nemmere end du kan der.
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.