Einfaches Rechenprogramm mit Konsoleneingabe

Ronny123

Mitglied
Hallo zusammen.
Ich mir echt Mühe gegeben und auch eine Konsoleneingabe (java.util Paket) ist mir gelungen.

Ich weiß nur nicht wie ich den eingegebenen Wert weiter verarbeiten kann, sodass das Programm ausgibt, ob die Lösung richtig ist oder nicht.
Mit if und else Anweisungen komme ich auch nicht weiter.
Kann mir jemand bitte helfen, auch damit ich in meinem Kernprozess weiterkomme?

Vielen Dank schon mal

1721235448748.png
 
Das ist jetzt etwas wenig an Informationen. Generell gibst Du ja eine Rechenaufgabe aus. Damit solltest Du in der Lage sein, das richtige Ergebnis zu berechnen.
Dann kannst Du die Eingabe ja mit dem berechneten Ergebnis vergleichen um dann die eine oder andere Ausgabe zu bringen.

Generell wäre es ansonsten hilfreich, wenn Du Deinen Code zeigen würdest. Dann könnte man konkrete Hinweise zu dem Code geben.
 
Das ist jetzt etwas wenig an Informationen. Generell gibst Du ja eine Rechenaufgabe aus. Damit solltest Du in der Lage sein, das richtige Ergebnis zu berechnen.
Dann kannst Du die Eingabe ja mit dem berechneten Ergebnis vergleichen um dann die eine oder andere Ausgabe zu bringen.

Generell wäre es ansonsten hilfreich, wenn Du Deinen Code zeigen würdest. Dann könnte man konkrete Hinweise zu dem Code geben.
Auf jeden Fall vielen lieben Dank für die rasche Rückmeldung 🙂

Ich such nach einer Möglichkeit, anzeigen zu lassen, ob die Eingabe als Ergebnis der Rechenaufgabe richtig oder falsch ist.
Es ist sicher ganz einfach, aber ich stehe völlig auf dem Schlauch.

import java.util.Scanner;

public class Main {
public static void main(String[] args)
{
String input;
Scanner scan = new Scanner (System.in);

System.out.println("Löse die folgende Rechenaufgabe.");
System.out.print("1+1= ");

input = scan.nextLine(); // Benutzerngabe des Ergebnisses

}

}
 
Also wenn Du die Aufgabe fest kodiert hast, dann kannst Du die Lösung auch fest kodieren:
Java:
public class Main {
    public static void main(String[] args) {
        String input;
        Scanner scan = new Scanner (System.in);

        System.out.println("Löse die folgende Rechenaufgabe.");
        System.out.print("1+1= ");

        input = scan.nextLine(); // Benutzerngabe des Ergebnisses

        if (input.equals("2")) {
            System.out.println("Richtig!");
        } else {
            System.out.println("Leider falsch!");
        }
    }
}

Hier aber noch ein paar generelle Hinweise:
a) Lokale Variablen deklariert man meist so, so dass der Gültigkeitsbereich möglichst klein ist. Das String input kommt also am besten mit in die Zeile des scan.nextLine() Aufrufs.
b) Man sollte versuchen, den am besten passenden Datentyp zu verwenden. Das Ergebnis ist ja eine ganze Zahl, daher sollte man da den entsprechenden Typ verwenden. Dazu hätte Scanner z.B. die Methode nextInt().

Java:
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner (System.in);

        System.out.println("Löse die folgende Rechenaufgabe.");
        System.out.print("1+1= ");

        int input = scan.nextInt(); // Benutzerngabe des Ergebnisses

        if (input == 2)) {
            System.out.println("Richtig!");
        } else {
            System.out.println("Leider falsch!");
        }
    }
}
 
Wenn Du die Aufgabe nicht mehr fest codiert hast, dann hast Du ja die Operanden und die Operation irgendwie gespeichert. Dann könntest Du damit auch die Aufgabe lösen. Du hast also z.B. int operand1, operand2; chat operator;

Die initialisierst Du irgendwie - z.B. Zufallszahlen und ein Operator aus +, -, * und /.

Dann kannst Du die Aufgabe stellen und auch das Ausrechnen machen. So kannst Du z.B. mit if prüfen, ob der Operator z.B. '+' ist um dann ergebnis = operand1 + operand2; zu rechnen.

Das sind aber erst einmal nur ein paar Ideen, um paar Möglichkeiten aufzuzeigen. Da ist halt die Frage, was die genauen Anforderungen sind, sprich: Was genau soll das Programm machen?
 
Ich weiß nur nicht wie ich den eingegebenen Wert weiter verarbeiten kann, sodass das Programm ausgibt, ob die Lösung richtig ist oder nicht.
Ein einfacher Zugang zu dem Thema ist es mit Variablen zu arbeiten.
Java:
import java.util.Random;
import java.util.Scanner;

public class CalculationTestStart {

    public static void main(String[] args) {
        Random rnd = new Random(System.currentTimeMillis());
        Scanner input = new Scanner(System.in);
        int a = rnd.nextInt() % 100;
        int b = rnd.nextInt() % 100;
        int result = inputInt(input, getAddStr(a, b) + " = ? ");
        System.out.println(result == add(a, b) ? "richtig" : "falsch");
    }

    public static int add(int a, int b) {
        return a + b;
    }

    public static String getAddStr(int a, int b) {
        return a + " + " + b;
    }

    public static int inputInt(Scanner input, String label) {
        int value = 0;
        boolean ok = false;
        do {
            try {
                System.out.print(label + " > ");
                value = Integer.parseInt(input.next());
                ok = true;
            } catch (NumberFormatException e) {
                System.out.println("Bitte eine ganze Zahl eingeben!");
            }
        } while (!ok); // as long as no valid integer was entered
        return value;
    }

}
 

Zurück
Oben