# for Schleife mit zwei bedingungen ?



## Wiedereinsteige (16. Apr 2012)

Hi

ich wollte nur fragen ob man in einer for Schliefe genau so wie in einer While oder do While zwei Bedingungen nutzen kann ?


----------



## Marco13 (16. Apr 2012)

Ja


----------



## Spacerat (16. Apr 2012)

Warum denn nicht? Einfach im mittleren Teil eine Bedingung hinzufügen:

```
for(start(); ende1() | ende2(); weiter()) {
  // code...
}
```


----------



## Wiedereinsteige (16. Apr 2012)

Oder anders gefragt kennt einer einer Möglichkeit ohne eine weitere Schleife das mit einer for Schleife zu realisieren ? Bzw zwei also einer for schleife anstatt der mit while ,weil ich eher der for Schleifen Typ bin und ich auf keine Lösung komme. Ohne drei Schleifen zu verwenden !


```
public static void insertion_srt(int array[], int n)
  {
    for (int i = 1; i < n; i++)
    {
      int j = i;
      int B = array[i];
      while ((j > 0) && (array[j-1] > B))
      {
        array[j] = array[j-1];
        j--;
      }
      array[j] = B;
      
    }
  }
```


----------



## AquaBall (16. Apr 2012)

Wiedereinsteige hat gesagt.:


> for schleife anstatt der mit while
> 
> ```
> public static void insertion_srt(int array[], int n)
> ...



meinst du:

```
public static void insertion_srt(int array[], int n)
  {
    for (int i = 1; i < n; i++)
    {  int j = i;
       int B = array[i]
       for (; (j > 0) && (array[j-1] > B);j--)
      {
        array[j] = array[j-1];
      }
      array[j] = B;  
    }
  }
```
Wo liegt ein Problem?


----------



## Wiedereinsteige (16. Apr 2012)

Ja ich wusste ja bis dato nicht das es mit zwei Schleifen Bedingungen geht . Daher kam die Schwierigkeit


----------



## AquaBall (16. Apr 2012)

Das sind ja gar nicht ZWEI Bedingungen.
Es ist EINE logischer Ausdruck.

Was viel eher verblüffen könnte: Gültig ist auch

```
for(i=0, j=array.length; i<100 && j>0; i++, j--) {
// .. mach was 
}
```
Das SIND mehrere Ausdrücke in Start-Teil und Inkrement-Teil.

Macht aber Programme nicht unbedingt immer lesbarer.


----------

