PelleP Skrevet 7. februar 2009 Del Skrevet 7. februar 2009 I den følgende programsnutten blir default utført hver gang, i tillegg til den valgte kommandoen: void ordrelokke(){ while (ordre !='e'){ skjerm.outln("Vennligst velg kommando"); ordre = tastatur.inChar(); switch (ordre) { case 'k': kjop(); break; case 'a': annuler(); break; case 'o': oversikt(); break; case 'l': liste(); break; case 'u': utvinning(); break; case 'b': beregne(); break; case 's': sumutvinning(); break; default: skjerm.outln("Finner ikke kommandoen"); } } } Dersom jeg feks taster "k", så blir resultatet: > Vennligst velg kommando > k > Kjøp av felt (Detter er korrekt) > Vennligst velg kommando (Dette er korrekt) > Finner ikke kommandoen (Kommer automatisk uten at jeg taster noe!) > Vennligst velg kommando Det her skjønner jeg ikke! Kan noen være så snill å forklare? Lenke til kommentar
what_no2000 Skrevet 7. februar 2009 Del Skrevet 7. februar 2009 Grunnen til at du kommer innom default er at du leser inn et og et tegn fra tastaturet, inkludert linjeskift/return. Hvis du legger til "System.out.println("Tegn: " + ordre + " ascii verdi: "+ (int) ordre);" rett før switch setningen ser du at du også leser ascii verdi 13 og 10 som er linefeed og carriage return. Disse må du ignorere, ved å legge til case som gjør ingenting hvis du leser akkurat disse tegnene. Lenke til kommentar
PelleP Skrevet 7. februar 2009 Forfatter Del Skrevet 7. februar 2009 ordre = tastatur.inChar(" "); i steden for: ordre = tastatur.inChar(); Takk, nå fungerer det! Lenke til kommentar
LostOblivion Skrevet 13. februar 2009 Del Skrevet 13. februar 2009 Du kan også lese resten av linja etter du har hentet første bokstaven. void CmdLoop() { char ch; out.println("> "); ch = in.getChar(); while (in.getChar() != '\n') ; switch (ch) { ... } } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå