Gå til innhold

StreamTokenizer.... finnes det metode for å repetere innlesing av tegn ( +, - , * , /), dersom en taster feil..(kalkulator)?


Anbefalte innlegg

På forhånd, beklager mitt klønete java-språk...Er temmelig ny i gamet... :eek: Driver på med et program i Java... En enkel kalkulator, med tallene 0-9 og funksjonene +,-,* og /.

Programmet skal be bruker taste inn tall1, regnefunksjon, og tall 2, og så blir det regna sammen. Det skal ikke gå an å dele på 0.

Importerer klassene : StreamTokenizer, BufferedReader og InputStreamReader.

En av funksjonene skal være at om en taster bokstaver i steden for tall, så vil ikke neste kommando starte før en har tasta riktig. (V.h.a st.nval), dette er jo en fin måte å sikre at det blir tasta inn innen for det en ønsker, st.nval ved tall og st.sval ved tekst/bokstaver).

Problemet: er det en slik funksjon for kun TEGN, som f.eks. + - * /??

har foreløbig lagt inn en feilkode her, System.error... eller exit. men da stopper jo programmet....noen forslag? :w00t:

Lenke til kommentar
Videoannonse
Annonse

For det første der, at du vil finne ut om det han har skrevet faktisk er et tall kan du jo første opprette en string tall1 hvor du skriver inn tall nr 1. Så konverterer du dette om til en double. Om dette går, gå videre, om dette ikke går start på nytt, altså en throw exception funksjon av noe slag.

Det med tegn, er ikke definert en egen funksjon for tegn, men du kan bruke char. Se litt på Ascii tabellen, der vil du se hva de forskjelige kodene er.

 

F.eks "/" er det samme som char 47. Lager du en do/while løkke så kan du la den kjøre så lenge tegn er ulik / eller * eller + eller -

Etterpå kan du lage ei for løkke, evt if setning for å regne ut regnestykket ditt.

Lenke til kommentar

Tusen takk for idèen Simen I`m on it

Bare hygelig :) Husk også på at en double har en maks og en min value sånn at du ikke går utenfor det. Max value er (2-2-52)*21023 og min value er 2-1074. Kan vere nyttig om du vil legge inn ei sperre her også.

Har du lært deg override foresten? gjør ting endel lettere ^^

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...