Gå til innhold

while(!in.hasNextInt) { ... }


Anbefalte innlegg

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 av banansplitt™
Lenke til kommentar
Videoannonse
Annonse

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

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