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]