# Potenz berechnen



## maxa (7. Jun 2011)

Hallo!

Ich soll ein Programm mit separater Methode schreiben, dass mithilfe der for-Schleife eine Potenz berechnet.

Hab mir darüber Gedanken gemacht und folgendes Programm geschrieben. Ich verstehe aber nicht.. der gibt mir immer die Basis wieder als Ergebnis raus..statt zu rechnen wie ich will..

Und ich kann einfach keinen Fahler finden..

Hab auch schon gegoogellt und andere Lösungen gefunden.. die aber eigentlich genau nach diesem Prinzip funktionieren.. warum hier nicht???

Sieht vielleicht ein richtiger Könner hier den Fehler?


```
public class AUF4_1 {


//Methode zum berechnen einer Potenz
public static int potenz_int(int p_basis, int p_exponent) {
	
	int potenz = 1 ;
	
	
	for (int i =1 ; i<=p_exponent ; ++i);
		
	{
		potenz = potenz * p_basis ;
		
	

		
	}
	return potenz;
	
	
}


//Hauptprogramm

public static void main(String [] args) {
int basis,exponent;

System.out.print ("Basis: ");
basis = EATools.intEinlesen ();

System.out.print ("Exponent: ");
exponent = EATools.intEinlesen ();


int erg = potenz_int(basis,exponent);
System.out.println ("Ergebnis: " +erg);


}
}
```

Vielen Dank!


----------



## andiv (7. Jun 2011)

Hinter die for-Schleife gehört kein Semikolon...



maxa hat gesagt.:


> ```
> for (int i =1 ; i<=p_exponent ; ++i); // HIER IST DEIN FEHLER
> 
> {
> ...


----------



## maxa (7. Jun 2011)

Oh mann....:noe:

Was so ein Semikolon ausmacht.. Hätt ich nicht gefunden......

Aber vielen Dank, jetzt klappt es!! 


Warum erkennt das denn mein Editor nicht als Fehler??


Danke!!!


----------



## Volvagia (7. Jun 2011)

Weil es kein Fehler ist. Das Semikomma trennt die Befehle, da dazwischen nichts steht wird es "leerer Befehl" gehandhabt. Deshalb arbeitet die for n-mal das leere Statement ab. Die Klammern sind auch nicht falsch, da man aus irgend einen Grund auch welche setzen darf, wenn es sich um keinen Schleifen/Abfragebody handelt.
Wenn du Eclipse verwendest bilde ich mir aber ein, ich habe die Möglichkeit gesehen den Compiler zu sagen er soll dann warnen/es als Fehler melden. Aber nicht böse sein wenn ich mich irre.

Übrigens ist es sinnvoll die Schleife so zu schreiben: for (int i = 0; i < p_exponent; i++).
Außer natürlich, du brauchst i das bei 1 beginnt. Das ist der übliche Weg


----------

