lina-: rekursive Funktion

Beitrag lesen

moin Snucky :)

Nur funktioniert das Konzept in der Realität nicht:

Richtig. Das liegt wahrscheinlich am return (bzw. am fehlenden return am Ende der Funktion). Ich bin didaktisch leider nicht so fit, dir zu erklären was Rekursion tut und vor allem was das auf Rückgabewerte für Auswirkungen hat - aber mir hat es immer sehr geholfen, wenn ich mir die Funktionen "aufgemalt" habe. Will heissen ich habe mir eine Zeichnung gemacht in der ich für ein paar Anwendungsfälle die zu erwartenden Variablen und Rückgaben aufschrieb und das dann mit dem tatsächlichen Programmablauf verglichen habe.

Aber wieso nutzt du überhaupt Rekursion?
Das Problem läßt sich doch in einer while-Schleife wunderbar lösen:

  
function errechne_zufall(maximum) {  
  var ausschlag=Math.random();  
  var rueck=Math.round(maximum*ausschlag);  
  while (in_arr(rueck,keys_used)) {  
   ausschlag=Math.random();  
   rueck=Math.round(maximum*ausschlag);  
  }  
  keys_used.push(rueck);  
  return rueck;  
 }  

PS: keine 100%ige Garantie dass das funktioniert... nicht getestet!

liebe Grüße aus Berlin
lina-

--
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)