Ausgabe findet nicht statt

Timo2010

Mitglied
Hallo,
ich habe eine Methode rechnen:
Java:
public void rechne(String eingabeoperator){
		if (sizeoperanden >=2 && !TaschenrechnerUIJWindow.operatoren.isEmpty()){
		double operandaint = Double.valueOf((String)TaschenrechnerUIJWindow.operanden.top());
		TaschenrechnerUIJWindow.operanden.pop();
		sizeoperanden--;
		double operandbint = Double.valueOf((String)TaschenrechnerUIJWindow.operanden.top());
		TaschenrechnerUIJWindow.operanden.pop();
		sizeoperanden--;
		String stackoperator = (String)TaschenrechnerUIJWindow.operatoren.top();
		TaschenrechnerUIJWindow.operatoren.pop();
		if (stackoperator == "*"){
			zwischenergebnis = operandaint * operandbint;
		}
		else if (stackoperator == "/"){
			zwischenergebnis = operandaint / operandbint;
		}
		else if (stackoperator == "+"){
			zwischenergebnis = operandaint + operandbint;
		}
		else if (stackoperator == "-"){
			zwischenergebnis = operandaint - operandbint;
		}
		System.out.println("erg: ");
		TaschenrechnerUIJWindow.operanden.push(zwischenergebnis);
		sizeoperanden++;
		}
	}
Nun soll diese Methode über eine While Schleife rekursiv aufgerufen werden und jeweils das Ergebnis ausgeben.
Java:
if (e.getSource()==TaschenrechnerUIJWindow.mal){
	usedoperator = "*";
	if (TaschenrechnerUIJWindow.operandenstrings.toString() != ""){
		addOperand(TaschenrechnerUIJWindow.operandenstrings);
		sizeoperanden++;
		}
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
	if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
		TaschenrechnerUIJWindow.operatoren.push(usedoperator);
}
	else {
		while (TaschenrechnerUIJWindow.operatoren.isEmpty()||istHoeherwertig(usedoperator)){
			rechne(usedoperator);
		}
Das Problem ist folgende Zeile:
System.out.println("erg: ");
Die Ausgabe erfolgt einfach nicht. Wann müsste die Ausgabe denn überhaupt erfolgen und wie kann man das Problem simpel beheben? Braucht man extra ein Array dafür?
 
Ich habe bemerkt, dass der Klammerinhalt der While Schleife des Actionlisteners nicht wiedergegeben wird.
Java:
else {
		while (TaschenrechnerUIJWindow.operatoren.isEmpty()||istHoeherwertig(usedoperator,TaschenrechnerUIJWindow.operatoren.top())){
			
			System.out.println("In der While Schleife");
			rechne(usedoperator);
		}
		System.out.println("Ist Höherwertig: "+istHoeherwertig(usedoperator,TaschenrechnerUIJWindow.operatoren.top()));
		System.out.println("Ist leer: "+TaschenrechnerUIJWindow.operatoren.isEmpty());
Und die beiden Ausgaben ergeben für beide Werte false. Wo könnte also der Fehler liegen? Es muss ja daran liegen, dass die While Schleife nicht durchlaufen wird.

Hat sich erledigt. Die While Schleife muss ja anders lauten. Danke
 

Zurück
Oben