Do while


Jofre

Erfahrenes Mitglied
Ich generiere eine Zahl. Hier im Beispiel ziffer1, die ich zum Testen gleich 7 gesetzt habe. Jetzt möchte ich alle Zahlen haben bei denen der Divisor j ein ganzzahligen Quotient größer 1 liefert.

Ist das nicht möglich wie hier im Beispiuel soll der Dividend um 1 erhöht werden und es wird wieder gesucht. Hier wäre dann der gesuchte Divisor die 2 unf 4.
Es wirdd dann per Zufall bestimmt ob mit 2 oder 4 weitergemacht wird.

Klappt nicht. Warum ???




Code:
 if(isDivision)
                                {                   
                                   
                                    ziffer1=7;
                                    var moeglichkeiten = [];
                                    var delta=-1;
                                    var merkJ;

                                    do
                                    {
                                                delta++; 
                                                ziffer1=ziffer1+delta;
                                              
                                                    for(var j = Math.max(2 , ziffer1 - 1); j >= 1; j--)
                                                    merkJ=j;                                                 
                                                  
                                                    {
                                                         if(ziffer1%j == 0 && j>1)
                                                        {
                                                            moeglichkeiten.push(j)                                                       
                                                        } 
                                                    }                                                       
                                    }
                                   
                                    while (ziffer1%merkJ==0);
                                    
                                        let wahl = random(moeglichkeiten.length);
                                        ziffer2 = moeglichkeiten[wahl];
                                              
                                }
 

Jofre

Erfahrenes Mitglied
in dem Beispiel erwarte ich, dass er mir als Ziffer1 die 8 bringt und für Ziffer 2 die 2 oder 4
 

Jofre

Erfahrenes Mitglied
Gelöst


Code:
 do
                                    {
                                                delta++; 
                                                ziffer1=ziffer1+delta;
                                              
                                                    for(var j = Math.max(2 , ziffer1 - 1); j >= 1; j--)
                                                                                            
                                                  
                                                    {
                                                        // das Math.max ist wichtig für den Fall, dass xx eins ist.+

                                                        if(ziffer1%j == 0 && j>1)
                                                        {
                                                            moeglichkeiten.push(j) 
                                                            merkJ++;                                                           
                                                        } 
                                                    }                                                       
                                    }
                                  while(merkJ==0);
löst.