Ein neuer Tag, ein neues Problem -.-
Folgender Code hat gestern noch einwandfrei funktioniert:
Heute spuckt mir die Konsole nach Ausgabe von "Alter von Person A2 bitte:" folgende Fehler aus:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at de.panjutorialsskillstest.java.PanjutorialsSkillsTest.inputhandling(PanjutorialsSkillsTest.java:39)
at de.panjutorialsskillstest.java.PanjutorialsSkillsTest.main(PanjutorialsSkillsTest.java:24)
Zeile 24:
Zeile 39:
Ich verstehe beim besten Willen nicht, warum der mir auf einmal diesen Fehler ausspuckt, vor Allem, weil das gestern exakt so noch funktioniert hat.
Immerhin habe ich herausgefunden, dass es funktioniert, wenn ich den Scanner "Input" am Ende der while Schleife nicht schließe, also wird das Problem denke ich mal das sein, dass der Scanner nicht wieder richtig geöffnet werden kann, warum auch immer.
Bitte um Hilfe, ich verzweifle!
LG TheMenox
Folgender Code hat gestern noch einwandfrei funktioniert:
Java:
package de.panjutorialsskillstest.java;
import java.util.Scanner;
public class PanjutorialsSkillsTest {
public static void main(String[] args) {
declaration();
int A1 = inputhandling("A1");
int A2 = inputhandling("A2");
int B1 = inputhandling("B1");
int B2 = inputhandling("B2");
outputresult(A1, A2, B1, B2);
}
public static void declaration(){
System.out.println("Folgende Situation: Wir haben 2 Gruppen A und B mit jeweils 2 Personen 1 und 2.");
System.out.println("Von diesen beiden Gruppen wollen wir jeweils das Gesamtalter bestimmen und herausfinden, welche Gruppe insgesamt älter ist.");
System.out.println("Dazu musst du nun nacheinander das Alter von allen 4 Personen eingeben und mit 'Enter' bestätigen.");
}
public static int inputhandling(String Person){
System.out.println("Alter von Person " + Person + " bitte:");
Scanner Input = new Scanner(System.in);
int inputAge = Input.nextInt();
while (true){
if(inputAge < 0)
System.out.println("Das von dir für Person " + Person + " eigegebene Alter ist ungültig. Bitte gib ein Neues ein.");
else{
Input.close();
return inputAge;
}
}
}
public static void outputresult(int A1, int A2, int B1, int B2){
System.out.println("Das Gesamtalter von Gruppe A ist " + totAge(A1, A2) + " Jahre.");
System.out.println("Das Gesamtalter von Gruppe B ist " + totAge(B1, B2) + " Jahre.");
if (totAge(A1, A2) > totAge(B1, B2)){
System.out.println("Gruppe A ist insgesamt " + totAgeDiff(totAge(A1, A2), totAge(B1, B2)) + " Jahre älter als Gruppe B.");
}else if (totAge(A1, A2) < totAge(B1, B2)){
System.out.println("Gruppe B ist insgesamt " + totAgeDiff(totAge(A1, A2), totAge(B1, B2)) + " Jahre älter als Gruppe A.");
}else{
System.out.println("Gruppe A und Gruppe B sind insgesamt gleich alt.");
}
}
public static int totAgeDiff (int totAgeA, int totAgeB) {
return Math.abs(totAgeA - totAgeB);
}
public static int totAge (int Age1, int Age2) {
return Age1 + Age2;
}
}
Heute spuckt mir die Konsole nach Ausgabe von "Alter von Person A2 bitte:" folgende Fehler aus:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at de.panjutorialsskillstest.java.PanjutorialsSkillsTest.inputhandling(PanjutorialsSkillsTest.java:39)
at de.panjutorialsskillstest.java.PanjutorialsSkillsTest.main(PanjutorialsSkillsTest.java:24)
Zeile 24:
Java:
int A2 = inputhandling("A2");
Java:
int inputAge = Input.nextInt();
Immerhin habe ich herausgefunden, dass es funktioniert, wenn ich den Scanner "Input" am Ende der while Schleife nicht schließe, also wird das Problem denke ich mal das sein, dass der Scanner nicht wieder richtig geöffnet werden kann, warum auch immer.
Bitte um Hilfe, ich verzweifle!
LG TheMenox