Ich versuche einen Dreieckszahlengenerator zu erstellen, der den Benutzer fragt, wie viele Dreieckszahlen er erzeugen soll. Das sind meine Fehler:Looping mit Scanner
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at TriangularNumbers.main(TriangularNumbers.java:11)
import java.util.Scanner;
public class TriangularNumbers {
public static void main(String args[]) {
while(true){
long tnumber = 1L;
long amount = 2L;
System.out.println("Welcome to the triangular numbers calculator!");
System.out.println("Type in the amount of triangular numbers to be generated!");
Scanner reps = new Scanner(System.in);
long repeats = reps.nextInt();
reps.close();
long i = 0L;
while (i < repeats) {
i = i + 1;
System.out.println(i + ". " + tnumber);
tnumber = tnumber + amount;
amount = (amount + 1);
}
System.out.println("Done generating!");
}
}
}
Alles funktioniert gut, bis er die Stufe der zweiten Benutzereingabe erreicht.
uhhhh leider falsch Betrogene, TUN NICHT tun 'reps.close();' in der Schleife, die 'System.in' Passendes Schließen Stream und kann danach nicht mehr eingegeben werden. – SomeJavaGuy
Mögliches Duplikat von [Der Scanner überspringt nextLine() nach der Verwendung von next(), nextInt() oder anderen nextFoo() Methoden] (http://stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after- using-next-nextint-or-other-nextfoo) – xenteros