Java | Wie kann ich den Scanner schließen?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mal

userInput.close();

Versucht?

Aha das war es also. Ja es klappt danke!

0

Du musst schon deine Instanz schließen und nicht statisch die Klasse.

userInput.close();

Ja es funktioniert. Danke!

0

Die sauberste Variante wäre ein try-with-resources:

try (Scanner sc = new Scanner(System.in)) {

   ...

} catch (Exception e) {
   ...
}

Damit brauchst du nichts selber zu schließen.

Warum wird mir der Fehler in Java angezeigt?

Hallo Freunde, ich bin gerade dabei einen BMI Rechner in Java (NetBeans) zu programmieren. Allerdings kommt immer bei der if /else if abfrage ein Fehlercode. Ich weiß nicht warum der kommt. Hab mir schon Videos angesehen etc aber bei denen ging das alles. if(Alter<=24) if(ergebnis>=0) System.out.println("ACHTUNG!!! Du hast ein Untergewicht"); if else(ergebnis>=19) System.out.println("PERFEKT!!! Du hast ein Normalgewicht"); if else(ergebnis>=24) System.out.println("ACHTUNG!!! Du hast leicht erhöhtes Übergewicht");

bei den zwei if else Abfragen kommt ein Fehler. Ich hab auch nochmal den ganzen Quelltext reingestellt damit man es sich komplett angucken kann. Hoffe jmd kann mit helfen :)

package bmirechner; import java.util.Scanner;

public class BMIrechner {

public static void main(String[] args) {

    double Körpergröße;
    double Gewicht;
    double Geschlecht;
    double ergebnis;
    int Alter;
    Scanner ScannerKörpergröße = new Scanner(System.in);
    Scanner ScannerGewicht = new Scanner(System.in);
    Scanner ScannerGeschlecht = new Scanner(System.in);
    Scanner ScannerAlter = new Scanner(System.in);

    System.out.println("Herzlich Willkommen zum BMI Rechner von Valentin Wagner");
    System.out.println("Sind Sie ein Mann oder eine Frau?");
    System.out.println("Geben Sie (1) für Frau ein und (2) für Mann ein");
    Geschlecht=ScannerGeschlecht.nextDouble();
    System.out.println("Wie alt sind sie?");
    Alter=ScannerAlter.nextInt();
    if(Geschlecht == 1){
        System.out.println("Bitte geben sie Ihre Körpergröße an");
        Körpergröße=ScannerKörpergröße.nextDouble();
        System.out.println("Bitte geben sie Ihr Gewicht an");
        Gewicht=ScannerGewicht.nextDouble();
        ergebnis=Gewicht / (Körpergröße * Körpergröße);
        System.out.println("Ihr BMI beträgt: " + ergebnis);
        if(Alter<=24)
            if(ergebnis>=0)
                    System.out.println("ACHTUNG!!! Du hast ein Untergewicht");
            if else(ergebnis>=19)
                    System.out.println("PERFEKT!!! Du hast ein Normalgewicht");
            if else(ergebnis>=24)
                    System.out.println("ACHTUNG!!! Du hast leicht erhöhtes Übergewicht");
...zur Frage

Was möchtest Du wissen?