Hallo zusammen!
Wir haben heute mit Methoden begonnen und nun wollte ich das letzte Programm- es las Zahlen in einen Array ein und hat diesen dann später per Schleife nach der größten und kleinsten Zahl ducrhsucht und diese dann ausgegeben- umschreiben.
Das alte Programm sah so aus:
import java.util.Scanner;
class Werte {
public static void main(String[] args) {
// Vorbereitung
System.out.println("Eingabe von Zahlen, beenden durch eine nicht numerischen Eingabe");
double z[] = new double[8];
int n = 0;
Scanner s = new Scanner(System.in);
while (n < z.length && s.hasNextDouble()) {
z[n++] = s.nextDouble();
}
// Abschluß
System.out.println("\nEinlesen beendet nach " + n
+ " Eingabezahl" + (n == 1 ? "" : "en") + "\n");
if (!s.hasNextDouble())
System.exit(0);
//Hauptteil
int min = 0, max = 0;
for (int i = 1; i < n; i++) {
if (z[i] < z[min])
min = i;
if (z[i] > z[max])
max = i;
}
// Abschluß
System.out.println("\nDie kleinste Zahl ist: "
+ z[min]
+ "\nDie groesste Zahl ist:"
+ z[max];
}
}
Alles anzeigen
Nun habe ich versucht zwei Methoden zu schreiben, die den kleinsten und größten Wert übergeben, so dass der Hauptteil wegfällt. Diese habe ich in einer Klasse Wertemethoden gespeichert. Die dazugehörige andere Klasse lautet nur Werte und sieht folgendermaßen aus:
Class Werte {
public static void main(String[] args) {
// Vorbereitung
System.out.println("Eingabe von Zahlen, beenden durch eine nicht numerischen Eingabe");
double z[] = new double[8];
int n = 0;
java.util.Scanner s = new java.util.Scanner(System.in);
while (n < z.length && s.hasNextDouble()) {
z[n++] = s.nextDouble();
}
// Abschluß
System.out.println("\nEinlesen beendet nach " + n
+ " Eingabezahl" + (n == 1 ? "" : "en") + "\n");
if (n == 0)
System.exit(0);
// Abschluß
System.out.println("\nDie kleinste Zahl ist: "
+ Wertemethoden.min
+ "\nDie groesste Zahl ist:"
+ Wertemethoden.max);
}
}
Alles anzeigen
class Wertemethoden {
static double Wertemin {double min (int z, int n) {
int min = 0;
for (int i = 1; i < n; i++) {
if (z[i] < z[min])
min = i;
return min;
}
}
}
static double Wertemax {double max(int z, int n) {
int max = 0;
for (int i = 1; i < n; i++) {
if (z[i] > z[max])
max = i;
return max;
}
}
}
}
Alles anzeigen
Nun bekomme ich im Methoden- Teil immer eine Fehlermeldung betreffend die beiden double bei static double Wertemin bzw. Wertemax. Was genau will er mir mit dieser Fehlermeldung mitteilen?
Syntax error on token "double", class expected
Zudem meckert er in der Hauptklasse Werte, dass
Wertemethoden.min cannot be resolved.
Muss ich irgendwie eine weitere Referenz auf die Klasse Wertemethoden einbauen? Und wie sieht so ein Verweis aus? Ich dachte, es würde genügen, den direkten Verweis erst im Ausgabeteil anzusprechen.
Ich danke für die Hilfe,
Tom