Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Komma Operator bei Schleifen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.04.2009, 16:16 Uhr
Dirk1980



Hallo zusammen,

ich möchte folgenden Code in 2 Schleifen umwandeln. Aber ich bekomme es nicht hin, da mir für die Schleife mit dem j die Bedingung fehlt.

Wie könnte es gehen?


C++:
for( j = num_list_elements - 1, i = 0;
      i < num_list_elements/2;
      i++, j--)
{
....
}



Vielen Dank schon einmal und viele Grüße
Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.04.2009, 17:13 Uhr
ao

(Operator)


i läuft von 0 bis num / 2 (für i == num/2 kommt man nicht mehr in den Schleifenkörper hinein, der Zählerwert wird aber trotzdem angenommen).

j beginnt bei num - 1 und macht gleich viele Schritte von oben, hat also nach Schleifenende den Wert num / 2 - 1, wobei der letzte Wert, mit dem der Schleifenkörper durchlaufen wird, num/2 ist.

Damit müsstest du es hinkriegen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.04.2009, 09:14 Uhr
Dirk1980



Hallo ao,

vielen Dank für Deinen Tipp. Hier meine Lösung.


C++:
for( i = 0; i < (num/2); i++ )
{
    for( j = (num-1); j >= (num/2); j--)
    {
         .....
    }
}



Ist es in diesem Fall egal, welche Schleife die innere bzw. die äußere ist?

Viele Grüße
Dirk

Dieser Post wurde am 29.04.2009 um 09:15 Uhr von Dirk1980 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.04.2009, 09:38 Uhr
ao

(Operator)


Moment mal, du kannst nicht aus einer einfachen Schleife zwei *geschachtelte* Schleifen machen, das ist was grundsätzlich anderes.

Ich hatte verstanden, du suchst etwas in dieser Art:

C++:
for (i = 0; .....)
{
}

for (j = 0; ....)
{
}



Der Code im 1. Posting ist nur eine Schleife über i, weil die Abbruchbedingung von i abhängt.

Das j wird zwar im Schleifenkopf mitgezogen, weil die C-Syntax das ermöglicht. Es hat aber keine steuernde Wirkung auf die Schleife. Insofern ist das kein schöner Code, klarer wäre
es so:

C++:
j = num_list_elements - 1;

for(i = 0;
      i < num_list_elements/2;
      i++)
{
    ....
    
    j--;
}


dann käme man gar nicht auf dumme Gedanken.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: