Gå til innhold

Default utføres hver gang


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...