Laden...

If Bedingung multiplikator

Erstellt von lucksn vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.347 Views
L
lucksn Themenstarter:in
34 Beiträge seit 2008
vor 16 Jahren
If Bedingung multiplikator

Hallo liebe C# Gemeinde,

ich habe folgende Frage, ich habe eine if Bedingung.

if(Variable==4)
{
//ausführen
}

Vorgeschaltet ist eine FOR Schleife die einen Array durchgeht, immer wenn der COunt der ArrayList 4 erreicht soll etwas ausgeführt werden.
Also 4/8/12 usw.. wie bekomm ich dies hin? Hat da jemand eine Idee?

2.760 Beiträge seit 2006
vor 16 Jahren

Entweder du führst einen seperaten int Counter den du jedes mal wenn die nächsten 4 mal hochgezählt wurde zurücksetzt und überprüfst den oder du schaust ob dein Count ohne Rest durch 4 teilbar ist.

[Edit]
Du möchtest z.B. bei jedem 4. Durchlauf etwas tun:
1 -nichts
2 -nichts
3 -nichts
4 -tu was
5 -nichts
6 -nichts
7 -nichts
8 -tu was
usw.. ?

T
63 Beiträge seit 2007
vor 16 Jahren

Meintest du sowas?


int j = 0;
ArrayList test = new ArrayList();
test.Add("1");
test.Add("2");
test.Add("3");
test.Add("4");
for (int i = 0; i < test.Count; i++)
{
     j++;
     if (j == 4)
    {
        //tu was
        j = 0;
     }
}

2.187 Beiträge seit 2005
vor 16 Jahren

Hi,

Die standardlösung ist:


for(int i=0;i<array.Length;i++)
{
  if(i>0&&i%4==0)
  {
    // Code der bei jedem 4.Durchlauf ausgeführt wird.
  }
}

Gruß
Juy Juka

T
63 Beiträge seit 2007
vor 16 Jahren

Ja klar Modulo!

Warum kompliziert wenns auch einfach geht.

L
lucksn Themenstarter:in
34 Beiträge seit 2008
vor 16 Jahren

Hm ja, klingt gut.
Dankeschön ich werds mal durchprobieren.

S
489 Beiträge seit 2007
vor 16 Jahren

Wenn es reicht immer nur den 4. Index zu bearbeiten geht's auch folgender massen:


for(int i=0;i<=(array.Length-array.length%4);i+=4)   //Inhalt der Klammer geht vielleicht noch besser
{
    // Code
}
2.187 Beiträge seit 2005
vor 16 Jahren
  
for(int i=0;i<=(array.Length-array.length%4);i+=4)   //Inhalt der Klammer geht vielleicht noch besser  
{  
    // Code  
}  

Sry, aber du erhöhst i auch immer um 4, also ist der Klammerteil einfach falsch!
Es muss

i<=array.Length

heißen.

Gruß
Juy Juka

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo JuyJuka,

i < array.Length

🙂

herbivore

2.187 Beiträge seit 2005
vor 16 Jahren

*an den Kopf hau*
Oh man! herbivore hat wie immer recht.

U
1.688 Beiträge seit 2007
vor 16 Jahren

Noch eine Möglichkeit ohne Modulo:


for (int i=1;i<=array.Length/4;i++) {
  // tu was, z. B. 
  Console.WriteLine(i<<2);
}
S
489 Beiträge seit 2007
vor 16 Jahren

i < array.Length

Stimmt natürlich! 🙂