Anfängerproblem

J4V4-G1MP

Grünschnabel
Hallo zusammen,

als blutiger Anfänger versuche ich gerade, eine Applikation zu schreiben, die etwas errechnet, in einer Variable packt und das Ergebnis ausgibt.

Erwartete Ausgabe nach Programmausführung: 301 * 302

Allerdings gibt der Compiler einen Fehler aus, dessen Sinn ich nicht verstehe.


Fehlermeldung: :7: ';' expected.

Nach der Methodendeklaration sollte doch kein Semikolon stehen.

Irgendetwas grundlegendes habe ich nicht verstanden. Habe auch schon versucht, Teile in eine andere Methode zu packen, aber dann gab´s Ärger, weil die main-Methode static war und die andere nicht. Und wenn ich beide static gesetzt habe, gab´s auch Compiler-Terror.

Könnte mir bitte jemand was erkären?



Java:
public class Methoden_test extends Object
{
	public static void main(String[] args)
	{											
		int zahl;						//Deklaration Variable 'zahl'
		int add(int a, int b)				//Definition Methode 'add'
		{
			return a+b;				//Verhalten Methode 'add'
		}
		zahl = add(100,200);			//Methodenaufruf 'add'
		System.out.println(++zahl++);	//Anweisung 
		System.out.println(zahl);
	}
}
 
Zuletzt bearbeitet von einem Moderator:

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi und herzlich Willkommen bei tutorials.de

Bitte schreibe deinen Code das nächste mal zwischen [code=java] [/code], so ist er viel einfacher für uns zu lesen:

Java:
public class Methoden_test extends Object
{
	public static void main(String[] args)
	{											
		int zahl;						//Deklaration Variable 'zahl'
		int add(int a, int b)				//Definition Methode 'add'
		{
			return a+b;				//Verhalten Methode 'add'
		}
		zahl = add(100,200);			//Methodenaufruf 'add'
		System.out.println(++zahl++);	//Anweisung 
		System.out.println(zahl);
	}
}

Der Fehler ist, dass du innerhalb einer Methode keine andere Deklarieren darfst. Wenn du deinen Code wie folgt schreibst, funktioniert es (grob aus dem Kopf raus):

Java:
public class Methoden_test extends Object
{
	public static void main(String[] args)
	{											
		int zahl;						//Deklaration Variable 'zahl'
		zahl = add(100,200);			//Methodenaufruf 'add'
		System.out.println(++zahl++);	//Anweisung 
		System.out.println(zahl);
	}

	private static int add(int a, int b)				//Definition Methode 'add'
	{
		return a+b;				//Verhalten Methode 'add'
	}
}

Was beabsichtigst du eigentlich mit der Anweisung "System.out.println(++zahl++);"?

Grüße,
BK
 

J4V4-G1MP

Grünschnabel
Vielen Dank! In meinem Lernheft stand zwar, dass man keine Anweisungen (z.B. zahl = add(100,200); ) in den Programmblock von Klassen, sondern nur von Methoden schreiben darf, aber dass Methoden nicht in den Programmblock von Methoden gehören, stand da nicht. Anscheinend geht man nicht davon aus, dass der Lernende selbst herum probiert.

Mit
System.out.println(++zahl++);
wollte ich eine Ausgabe nach Präfix- und eine nach Postfix-Inkrement. Nichts besonderes, das ganze dient nur als Übung für mich.

Du hast mir jedenfalls sehr geholfen. Bevor ich mir deine Lösung anschaue, versuche ich, sie selbst zu schreiben anhand der wichtigen Information aus deiner Antwort. Vielen Dank!
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Mit
System.out.println(++zahl++);
wollte ich eine Ausgabe nach Präfix- und eine nach Postfix-Inkrement. Nichts besonderes, das ganze dient nur als Übung für mich.

Soweit hab ich das auch verstanden, nur finde ich es etwas ungewöhnlich, beides gleichzeit zu verwenden ;)

Du hast mir jedenfalls sehr geholfen. Bevor ich mir deine Lösung anschaue, versuche ich, sie selbst zu schreiben anhand der wichtigen Information aus deiner Antwort.

Sehr löblich, dann noch viel Spaß beim lernen und den Thread hier bitte als erledigt markieren. ;)

Grüße,
BK