Fehler im Code?

TechNick2546  13.02.2023, 12:19

Kannst du den Fehler auch zeigen?

RLOCLIPZ 
Beitragsersteller
 13.02.2023, 12:21

Rate eine Nummer zwischen 1 und 100!

Exception in thread "main" java.lang.NullPointerException

at aufgabe14.main(aufgabe14.java:13)

Process finished with exit code 1

das ist der error

3 Antworten

Ich denke es liegt daran, dass das

System.console().readLine()

dir Null returned.

Versuch mal die Eingabe mit einem scanner einzulesen.

Mehr dazu hier: https://www.w3schools.com/java/java_user_input.asp

Woher ich das weiß:Recherche

sweetyFlashy2  14.02.2023, 18:29

ups ich sehe grade, dass es schon beantwortet wurde, irgendwie hab ich das übersehen

Aber den link könntest du dir trotzdem denke ich mal anschauen für zukünftige Aufgaben

IDE's wie Eclipse nutzen in der Regel ihre eigene Konsolenimplementation, auf die du über System.console() keinen Zugriff hast. Stattdessen bekommst du in diesem Kontext den Wert null zurück.

Führe das Programm entweder in dem klassischen Konsolenprogramm deines OS aus oder verwende prinzipiell für das Einlesen von Konsoleneingaben eine Scanner-Instanz.

Beispiel:

Scanner reader = new Scanner(System.in);
int someNumber = reader.nextInt();
String someText = reader.nextLine();

Recorsi  13.02.2023, 18:15

Der Code ist ungetestet, aber so kann man den scanner wahrscheinlich am einfachsten implementieren:

import java.util.Random;
import java.util.Scanner;

public class aufgabe14 {
  public static void main(String[] args) {
    Random rand = new Random();
    int target = rand.nextInt(100) + 1;
    int count = 0;
    int maxTries = 10;
    int guess;
    System.out.println("Rate eine Nummer zwischen 1 und 100!");

    Scanner input = new Scanner(System.in);
    do {
      guess = input.nextInt();
      count++;
      if (guess > target) {
        System.out.println("Du hast zu hoch geraten!");
      } else if (guess < target) {
        System.out.println("Du hast zu niedrig geraten!");
      }
    } while (guess != target && count < maxTries);

    if (guess == target) {
      System.out.println("Du hast die nummer in " + count + " versuchen erraten!");
    } else {
      System.out.println("Du hast versagt die nummer in " + maxTries + " versuche zu erraten!");
    }
  }
}

Wenn du das Programm exportierst, und es so ausführst sollte es funktionieren.

"Java.io.Console" ist in Eclipse, IntelliJ, und Anderen IDE-Konsolen nicht verfügbar.

In meiner Windows Console funktioniert es ohne Probleme: Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung
 - (Java, Programmiersprache, IntelliJ IDEA)

RLOCLIPZ 
Beitragsersteller
 13.02.2023, 12:47

muss schauen wie ich das mache