Gå til innhold

input undelig med tall - problem


Anbefalte innlegg

Holder paa aa lage et veldig simpelt program, det er ikke noe problem aa lage et program som tar imot 10 tall, dette kan man lage en loop til, hvis man ikke vet hvor mange tall man skal ta imot fra brukeren saa kan dette loses ved aa bruke et sentinel tall f.eks -1, saa hvis brukeren skriver inn -1 saa avslutter man loopen.

 

Dette funker fint saa lenge man tar inn positiv tall, derimot saa vil ikke dette fungere saa veldig greit med negative tall. Jeg lurte paa om noen av dere har noe forslag til hvordan man kan ta imot uendelig med tall fra en bruker, uten aa forhaandsdefinere hvor mange tall samt at brukeren kan skrive inn negative tall ogsaa, uten at programmet blir avbrutt hvis brukeren skriver -1.

 

Er det noeon som skjonner?

 

Frankie

Singapore

Lenke til kommentar
Videoannonse
Annonse

Du kan jo berre sjekke for blankt input? Det spørs sjølvsagt litt kva metode du brukar for å lese inn med, om det er ein metode som egentlig les inn ein string, eller kva det er. Eg held sjølv på å lære meg Java no, så tviler på at eg kan vere spesielt behjelpelig. ;)

Lenke til kommentar
  • 1 måned senere...

det er bare tull å bruke en annen type enn den typen du bruker på inputen. hvis du tar inn integer type, og du vet at det vil være ulogisk med noe annet enn en positiv verdi, er det veldig greit å buke negative tall som sentinel value. det gjør jeg alltid.

 

hvis du bruker en hjelpeklasse til å ta inn input fra tastaturet, kan denne klassen være korrupt hvis den ikke takler -1.

 

hvis du bruker stringTokenizer til å ta inn verdien, gjør det ett eller annet feil hvis du får feilmelding på negativt tall. bruker du stringTokenizer, må du parse (bruke wrapper klassene) før du kan kjøre noen tester på tallet. dette gjør du med følgende kommando:

Integer.parseInt(verdien); hvis du har dette rett. hvis ingenting av dette løser problemet ditt, har du feil på testen din. dette er en test som fungerer:

 

int tallet =(int) Integer.parseInt(verdien);

if(tallet < 0)

break/return/hopp over/ hva enn du vil gjøre;

Lenke til kommentar

vet ikke helt hvordan du tar imot verdiene fra bruker, men kan du ikke ta imot en boolean samtidig, true for flere tall (ok/send knapp), false for ferdig (avbryt/slutt knapp)

så er det bare å kjøre while(true) {}

 

Lettere å gi svar med konkrete kodeeksempler på problemet :)

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