Wie kapsele ich eine for-Klausel?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kapsele ich eine for-Klausel?

Post by Anonymous »

Das ist eher eine Übung.
Ich habe mehrere Bedingungen, die sich auf zwei verschachtelte for-Klauseln auswirken:

Code: Select all

for(...)//1st
{
for(...)//2nd
{
...
}
}
und da es verschiedene Möglichkeiten gibt (jede für eine Bedingung), können jeweils for1 und for2 variieren.
Zum Beispiel kann das erste for sein

Code: Select all

for (int row = 0; row < numRows; row++)
oder

Code: Select all

for (int row = numRows - 1; row >= 0; row--)
Ändert also nicht nur das Start-Ende, sondern auch die Zunahme/Abnahme (++ oder --)
Ich dachte also, wenn es möglich wäre, den for-Zyklus zu „kapseln“, wäre es einfach gewesen.
So etwas wie (Pseudocode)

Code: Select all

if(condition1)
for1=...
else
for1=...

if(condition2)
for2=...
else
for2=...

for1
{
for2
{
...
}
}
--ADD--
Der Code selbst ist ziemlich einfach.

Code: Select all

for (int row = numRows - 1; row >= 0; row--)
{
...
for (int column = 0; column < numColumns; column++)
{
...
}
}
aber wenn ich die Option FlipVertical habe, wird das erste für

Code: Select all

for (int row = 0; row < numRows; row++)
und wenn ich die Option FlipHorizontal habe, wird das zweite für

Code: Select all

for (int column = numColumns-1; column >=0; column--)
Auch das ist überhaupt nicht kompliziert. Ich wollte nur Hinweise haben, wie man das Problem auf intelligente, einfache und kompakte Weise lösen kann.
Und ja, ich brauche die Indizes Zeile und Spalte
Danke

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post