banansplitt™ Skrevet 21. april 2013 Del Skrevet 21. april 2013 (endret) Poenget er at den skal loope helt fram til bruker skriver inn en integer. Det fungerer fint om man skriver inn en integer, men om man legger inn en string, så virker det som metoden bare looper evig og skriver ut mellomrom av alle ting. Klarer ikke se hva som er feil i koden. package forelesning; import java.util.*; public class Oppgave02 { public static void main(String[] args) { System.out.println("Programmet regner ut når du blir pensjonist."); System.out.println(); System.out.print("Du har " + (67 - getInt("Hvor gammel er du? ")) + " år igjen til pensjonsalder."); } public static int getInt(String message) { Scanner in = new Scanner(System.in); do { System.out.print(message); } while (!in.hasNextInt()); int age = in.nextInt(); return age; } } Endret 21. april 2013 av banansplitt™ Lenke til kommentar
puse Skrevet 21. april 2013 Del Skrevet 21. april 2013 Du leser in fra tastaturet utenfor do while loopen, flytt linjen inn i loopen og det burde funke bedre. Enda bedre hadde vært å ta inputet som et command line argument. http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html Lenke til kommentar
Fred7555 Skrevet 21. april 2013 Del Skrevet 21. april 2013 Grunnen til den uendelige loopen er om du først skriver inn en String, så vil den aldri finne en nextInt. Om du venter på ny input inni loopen (input.next() eller lignende), så vil du ikke få en uendelig loop. Men du vil fremdeles få litt problemer. Personlig hadde jeg heller gjort noe slik: import java.util.Scanner; public class Oppgave02 { public static void main(String[] args) { System.out.println("Programmet regner ut når du blir pensjonist.\n"); System.out.print("Hvor gammel er du? "); System.out.print("Du har " + getInt() + " år igjen til pensjonsalder."); } public static int getInt() { Scanner in = new Scanner(System.in); while (!in.hasNextInt()) { System.out.print("Hvor gammel er du? "); in.nextLine(); } int age = in.nextInt(); return 67 - age; } } 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å