# Bedingter Ausdruck



## Hero (10. Dez 2011)

Hallo,
ich muss überall wo ich eine if-schleife verwende ein Bedingten Ausdruck verwenden, Beispiel:

```
int fakt(int n){
return (n <= 0) ? 1 : n*fakt(n-1);
}
```

Ich will den bedingten Ausdruck in einer for-schleife benutzen aber bei mir will er int i nicht hochzählen bzw. er geht nur einmal in die Schleife rein. Wenn ich es über eine If-Abfrage mache, geht es.

Mein Code:

```
int rueckgabe = 0;
			  for (int i = 0; i < dual.length(); i=i+1){
				  return  (Integer) ((dual.charAt(i) == '1')? rueckgabe += (int)Math.pow(2, dual.length() - 1 - i):true);}
```


----------



## Murray (10. Dez 2011)

Ich muss gestehen, ich verstehe die Fragestellung nicht wirklich. Wenn aber in einer for-Schleife der Schleifenrumpf aus nichts anderem als einer return-Anweisung besteht, dann ist es für mich nicht weiter verwunderlich, dass dieser Schleifenrumpf höchstens einmal ausgeführt wird.
Vielleicht magst Du das Problem nochmal anders formulieren?

BTW: den Begirff "if-Schleife" soltest Du vermeiden - das provoziert Posts, die nur erklären, dass es so etwas wie eine "if-Schliefe" nicht gibt.


----------



## Hero (10. Dez 2011)

Ja ich weiß, dass man If-Schleife nicht sagen darf, wird aber von Schülern ganz gerne verwendet .

Ansonsten Danke. Da war ein Denkfehler meinerseits gewesen. Es geht jetzt.


----------

