Swing Parameter werden bei Funktionsaufruf nicht ausgegeben

Alex2013

Bekanntes Mitglied
Hallo Leute,

ich habe ein kleines Problem mit einer Funktion.
Ich wollte einer Funktion pow zwei Parameter übergeben. Aus diesen Parametern sollte die Funktion jeweils die Wurzel ziehen. Das Ganze passiert zweimal.
Anschließend wollte ich die beiden Ergebnisse, welche ich vorher Variablen zugeordnet habe potenzieren.
sprich: pow(a,b);

Allerdings meldet mir der Compiler beim return einen Fehler, wobei ich hier eigtl. nur die beiden Variablen in der Funktion aufrufe und somit direkt ausgebe.

Hat zufällig jemand eine Idee, woran das liegen könnte, das ich keine Ausgabe bekomme?

Hier der Code:

Java:
[code]
//Die beiden operatoren werden im Code wie folgt initialisiert
double operator1=Double.parseDouble(eingabe.getText());
double operator2=Double.parseDouble(eingabe2.getText());//Double.valueOf(eingabe2.getText()).doubleValue();
				double erg;

else if(operation=='P')
				{
					Rechner.this.erg.setText(""+pow(operator1,operator2));
				}
				else
					System.out.println("Fehler");
			}
			catch(NumberFormatException nfe)
			{
				JOptionPane.showMessageDialog(null,"Bitte geben Sie ihre eingabe in einem anderen Format ein");
			}
		}
	}
	public double pow(double operator1,double operator2)
	{
		double pow;
		double erg=((Math.sqrt(Math.round(operator1=Double.parseDouble(eingabe.getText()))+Math.round(operator2=Double.parseDouble(eingabe2.getText())))));
		double erg2=((Math.sqrt(Math.round(operator1=Double.parseDouble(eingabe.getText()))+Math.round(operator2=Double.parseDouble(eingabe2.getText())))));
		return pow(erg,erg2);//--> In der Zeile wirft mir der Compiler die Fehlermeldung: at Rechner.pow(Rechner.java:141)
	}
[/code]

Liegt der Fehler evtl. daran, dass sie oben bereits initialisiert werden und ich das in der Funktion noch einmal mache?

Vielen Dank im Voraus

Lg
 
3 Fragen:

Zeile 20: Wofür ist "double pow"? Wird doch nirgends benutzt. Grundsätzlich ist es schwer lesbar, wenn eine Variable den gleichen Namen hat wie eine Funktion.

Zeile 23 + 24: Sollte das nicht eher so heißen?

Java:
double erg = Math.sqrt( Math.round( operator1 ) + Math.round( operator2));
double erg2 = Math.sqrt( Math.round( operator1 ) + Math.round( operator2));

Bei der Parameterübergabe kann man keine Eingabe mehr tätigen. operator1 und operator2 wurden pow ja bereits übergeben.

Zeile 25: "return pow(erg,erg2)" ... Du erstellst hier eine rekursive Endlosschleife.

Wenn zuerst die Wurzel gezogen und dann potenziert werden soll, dann brauchst du eine zweite Funktion, die dies auch tut.

Und: Eine Funktion liefert immer nur einen Wert zurück. Willst du das Ergebnis beider Zahlen haben, dann musst du die Funktionen entsprechend umbauen.

Was soll das Ergebnis des Programms sein? Kannst du ein Beispiel nennen?
 

Zurück
Oben