Dieses Programm umschreiben

Sajeel Chattha

Neues Mitglied
Hallo Leute! ich hab neulich mit Coding angefangen und hab diese Seite entdeckt. Ich stecke momentan an eine Aufgabe fest und komme nicht weiter. Könnt ihr vielleicht sagen wie ich das umschreiben muss? Ich muss den folgenden Programm so umschreiben das es es mit ein Array funktioniert. Es geht hier um Zahlen raten.
Dankeschön🙂
1611249942898.png
 
Ich muss den folgenden Programm so umschreiben das es es mit ein Array funktioniert.
Bei dieser Aufgabe sehe ich keinen Sinn für die Verwendung eines Arrays. Bitte poste die genaue Aufgabenstellung.
Der Code selbst kann natürlich verbessert werde. Z.B. wird eine falsche Eingabe ein Text statt einer Zahl nicht abgefangen. Außerdem wenn ein Scanner innerhalb einer Funktion aufgerufen wird sollte dieser beim verlassen der Funktion geschlossen werden. Des Weiteren ist in dem Kontext eine eingehende Schleife besser als eine abweisende.
Hier ein möglicher Verbesserungsvorschlag.
[CODE lang="java" title="Zahlenraten" highlight="12-19"]import java.util.Scanner;

public class ZahlenRaten {
private static Scanner scanner = new Scanner(System.in);

private static void rateZahl(int wertebereich) {
int zufallszahl = (int) (Math.random() * wertebereich);
int zaehler = 1;
String errorStr = "Du liegst falsch die zu erratende Zahl ist ";
System.out.println("Gib eine Zahl zwischen 0 und " + wertebereich + " ein! ");
int eingabe = 0;
do {
eingabe = inputInteger();
if (eingabe != zufallszahl)
System.out.println(errorStr + (eingabe < zufallszahl ? "groesser!" : "kleiner!"));
else
System.out.println("Richtig du hast " + zaehler + " Durchgaenge benoetigt!");
zaehler++;
} while (zufallszahl != eingabe);
}

private static int inputInteger() {
int value = 0;
boolean ok = false;
do {
try {
value = Integer.parseInt(scanner.next());
ok = true;
} catch (NumberFormatException e) {
System.out.println("Bitte nur Zahlen eingeben!");
}
} while (!ok);
return value;
}

public static void main(String[] args) {
rateZahl(100);
}
}
[/CODE]
 
Code bitte immer als Code mit Code-Tags, nicht als Screenshot.


An welcher Stelle soll was mit "Array funktionieren"?
Java:
import java.util.Scanner;

public class Zahlenraten2 {

    static void rateZahl(int wertebereich){       
        int zufallsZahl = (int)( Math.random()*wertebereich);
      
        System.out.println(zufallsZahl);
        Scanner scanner = new Scanner(System.in);
      
        System.out.println("Gib eine Zahl zwischen 0 und "+wertebereich+" ein!");
        int eingabe = scanner.nextInt();
        int zaehler=1;
      
        while (zufallsZahl != eingabe){
            if (zufallsZahl<eingabe){
            System.out.println("Du liegst falsch! Die zu erratende Zahl ist kleiner");
            }
            else {
                System.out.println("Du liegst falsch! Die zu erratende Zahl ist größer");
            }
            eingabe = scanner.nextInt();
            zaehler++;
          
        }
        System.out.println("Richtig! Du hast "+zaehler+" Durchgänge benötigt.");
    }

    public static void main(String[] args) {
        rateZahl(100);
    }
}



und es muss sowas sein, anstatt Zahlen erzeugen Zahlen raten
1611256982216.png
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben