Java Anfänger Prorgamm < Sonstige < Schule < Informatik < Vorhilfe
|
Hallo,
ich habe vor kurzem angefangen Java zu lernen.
Nun haben wir im Kurs gelernt kleinere Programme zu erstellen.
Im Folgenden Prorgamm versuche ich das Maximum der Zahlen zu bestimmen. Leider kommt immer die Fehlermeldung illegal start of expression, die sich auf Zeile 3(static int Maximum) bezieht und class, interface, enum expected in der letzten Zeile.
class Maximum {
public static void main (String []args){
static int Maximum (int max1, int max2){
int max;
if (max1<max2)
max=max1;
else
max=max2;
return max;
}
}
}
wäre super, wenn mir jemand helfen könnte.
Grüße ichonline
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:33 So 07.10.2007 | Autor: | piet.t |
Hallo,
Du versucht, innerhalb Deiner main()-Methode eine Methode Maximum() zu definieren - und das ist nicht erlaubt, Methoden dürfen nur in Klassen definiert werden, nicht in anderen Methoden. Eine mögliche Lösung könnte vielleicht so aussehen:
1: | class Maximum {
| 2: | public static void main (String []args){
| 3: | //hier kannst Du z.B. Deine maximum()-Methode aufrufen - oder Du lässt
| 4: | //main() komplett weg, wenn maximum() aus einer anderen Klasse
| 5: | //aufgerufen werden soll
| 6: | }
| 7: | static int maximum (int max1, int max2){
| 8: | int max;
| 9: | if (max1<max2)
| 10: | max=max1;
| 11: | else
| 12: | max=max2;
| 13: | return max;
| 14: | } //Ende maximum()
| 15: |
| 16: | }
|
Gruß
piet
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:08 So 07.10.2007 | Autor: | ichonline |
super funktioniert jetzt :)
Danke für die Erklärungen und Fehlerbehebnung.
Cu ichonline
|
|
|
|
|
Hi,
jetzt hab ich doch noch ein kleinens Problem.
Und zwar wo muss ich System.out.println("Maximum="+max);
einfühen, damit ich dass Maximum angezeigt bekomme`?
class Maximum {
public static void main (String []args){
}
static int Maximum (int max1, int max2){
int max;
max1=2;
max2=7;
if (max1<max2)
max=max1;
else
max=max2;
return max;
}
}
also wenn ich die Zeile vor return max; einfüge bekomme ich keine fehlermeldung, aber beim Ausführen passiert nix.
Cu ichonline
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:52 So 07.10.2007 | Autor: | piet.t |
Hallo,
so wie das im Moment aussieht würde es mich auch wundern, wenn da was passiert
Spaß beiseite, um das zu verstehen muss man sich einfach klar machen was passiert, wenn man ein java-Programm (sprich: eine Klasse mit einer main()-Methode) startet. Dann wird nämlich gerade der code, der in main() enthalten ist ausgeführt - in unserem Fall also gar keiner, denn main() ist ja noch leer.
Maximum() ist eine Funktion, die von irgendwo her aufgerufen werden muss und alleine erstmal nicht lauffähig ist - von welchen Zahlen sollte denn auch das Maximum bestimmt werden?
Fazit: man füge Code in die main()-Methode ein, der dann entsprechend ausgführt wird. Also zum Beispiel so:
1: | class Maximum {
| 2: | public static void main (String []args){
| 3: | int1 = 1;
| 4: | int2 = 2;
| 5: | int ergebnis = maximum(int1,int2);
| 6: | System.out.println(ergebnis);
| 7: | }
| 8: | static int maximum (int max1, int max2){
| 9: | int max;
| 10: | if (max1<max2)
| 11: | max=max1;
| 12: | else
| 13: | max=max2;
| 14: | return max;
| 15: | } //Ende maximum()
| 16: |
| 17: | }
|
In den Zeilen 3 und 4 werden also zunächst zwei Variablen definiert, dann wird in Zeile 5 die maximum()-Mathode aufgerufen. Anschließend wird der Rückgabewert aus der Methode ausgegeben.
Man könnte jetzt auch Ausgabebefehle in die maximum()-Methode einbauen, auch die würden dann ausgeführt.
Gruß
piet
P.S.: noch eine kleine Anmerkung am Rande: unter java-Programmierern ist es üblich (auch wenn es die Sprache an sich nicht erzwingt), nur Klassennamen groß zu schreiben. Methoden- und Variablennamen schreibt man üblicherweise klein - also besser maximum() statt Maximum().
|
|
|
|