Thorsten F.: for-schleife vereinfachen

Hallo Leute,

habe da mal eine Frage: Wie kann ich folgende for-Schleife vereinfachen?

for(w=3;w<6;w++)
       {
        if(zufall[0]==zufall[w])
        {
         for(v=0;v<6;v++)
         {
          zufall.pop();
         }
         klick=0;
         weiter=0;
         ar_one=0;
         ar_two=0;
         make_zufall();
        }
        else if(zufall[1]==zufall[w])
        {
         for(v=0;v<6;v++)
         {
          zufall.pop();
         }
         klick=0;
         weiter=0;
         ar_one=0;
         ar_two=0;
         make_zufall();
        }
        else if(zufall[2]==zufall[w])
        {
         for(v=0;v<6;v++)
         {
          zufall.pop();
         }
         klick=0;
         weiter=0;
         ar_one=0;
         ar_two=0;
         make_zufall();
        }
       }

Wie ihr seht, habe ich dort in der Schleife die gleiche if-Abfrage 3mal halt nur jeweils mit "einem" anderen Wert (zufall[0],zufall[1],zufall[2]) und das kann ja nicht der Sinn der Sache sein.
Nur komme ich da nicht drauf.

Gruß,
Thorsten F.

  1. Wie ihr seht, habe ich dort in der Schleife die gleiche if-Abfrage 3mal halt nur jeweils mit "einem" anderen Wert (zufall[0],zufall[1],zufall[2]) und das kann ja nicht der Sinn der Sache sein.

    Thorsten,
    Dafür sind Schleifen da. ;-)

    Dann werden zwei ineinander geschachtelt:
    [code lang=javascript]
    for (w = 3; w < 6; w++)
    {
      for (u = 0; u < 3; u++)
      {
        if (zufall[u] == zufall[w])
        {
          // ...
        }
      }
    }

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  2. habe da mal eine Frage: Wie kann ich folgende for-Schleife vereinfachen?

    Tut mir leid, aber je mehr ich von deinen code sehe umso mehr erweckt sich bei mir der Eindruck das du sehr umständlich dein Problem lösen willst. Was sich ja schon bei deiner rekursiven Lösung gezeigt hat. Das Problem ist, das du nicht sagst was da genau passieren soll. Es läßt sihc nur schwer aus dem Code herausfinden.

    Für mich sieht es so aus.
    Du willst Wissen, ob einer von den drei letzten Einträgen eines Arrays mit denen der ersten drei übereinstimmt, wenn ja, werden sechst Einträge aus dem Array entfernt und dann eine neue Funktion aufgerufen.

    Da du ja schon mal wegen einer Reihe von Zufallszahlen nachgefragt hast, wie wäre es, wenn du die Bedingung die erfüllt werden soll einmal formulierst?

    Struppi.