関数が再帰的である場合、最初の再帰だけで行を実行するにはどうすればよいですか?私は、すべての再帰で行を実行する必要はありません。あなたはこのようなものになるだろうので再帰関数で行を1回実行する
答えて
は、私はおそらく、このためのラッパー関数を記述します。ビット拡張性を向上させる必要があります
function do_stuff() {
do_stuff_only_once()
do_recursive_stuff()
}
function do_recursive_stuff() {
do_base_stuff()
do_recursive_stuff()
}
この方法であなたはすべての単一の関数呼び出しでif
ステートメントを行っていません、 。
function recursiveFunction(tempValue) {
if(tempValue==1) {
//exceute code one line code
}
// other function code here
recursiveFunction(tempValue++)
}
/*Call function */
recursiveFunction(1)
関数を呼び出すたびにインクリメントする必要はありません。ちょうどそれを何かに設定し、それを使ってやってください。いくつかの計算を保存してください。 –
はい、私はそれを知っています、私はそれを最初の呼び出しを区別するために置く –
dbstackを使用できます。私が以下のような関数を持っている場合
function tmp(iter)
x = dbstack;
disp(length(x));
if iter < 10
tmp(iter+1)
end
私はそれを何番目の関数が深い関数であるかを表示します。問題は、多くの場所でそれを使用したい場合、dbstackの長さでは十分ではないということです。その場合、dbstack構造体の名前フィールドを使用する必要があります。
永続的な変数は、関数への複数の呼び出しのためにその値を保持:私は一度だけ何かしたい場合は、それは別のオプションは、永続的な変数を使用することです。この
function tmp(iter)
%get the function list
x = dbstack;
%convert the function names into a cell array
func_names = {x.name};
%create a logical array of which functions match the name
name_matches = strcmp(func_names,'tmp');
%if there's only one match, we do it
if sum(name_matches) <= 1
disp('ONCE!');
end
disp('EVERY TIME!');
if iter < 10 %make a few recursive calls to demonstrate the function
tmp(iter + 1);
end
のように見えると思います。これは、初期化する値がある場合に理想的です。
- 1. 再帰的に別の関数を実行する再帰関数を実装する
- 2. javascript再帰関数で何かを一度実行する
- 3. 集計関数内で回帰を実行できますか?
- 4. 再帰関数をより速く実行する方法
- 5. ビューの再帰関数を実行するには?
- 6. 再帰関数ブロックの最後の文が何回実行されますか?
- 7. jqueryで関数を1回だけ実行するには?
- 8. 関数をJavascriptで1回だけ実行します。
- 9. 再帰関数の実行時間がかかります
- 10. ノードjs:再帰関数を順番に実行/制御フロー
- 11. JavaScript関数の実行を1回だけ制御する
- 12. 関数を2回実行する
- 13. フライウェイ:1回のトランザクションで複数の移行を実行する
- 14. 関数は1回実行され、addEventListenerは無効です
- 15. 複数のOLS回帰をPythonで実行する
- 16. 再帰:再帰関数から値-1を返すには
- 17. 再帰的なドライランを実行する
- 18. 再帰メソッド実行中
- 19. React - callbackFromApp関数は1回のみonClickを実行します
- 20. 実行時に同じ関数を再実行する方法
- 21. 1回のクリックで複数のJavaScript関数を実行する方法
- 22. Pythonの再帰関数回文簿
- 23. 1回で複数回実行するng-repeat?
- 24. jQuery - ボタンクリックで関数を再実行
- 25. javascriptでコードを1回実行する
- 26. シェルスクリプトをcronjobで1回実行する
- 27. プログラムによるAzure関数の1回実行のスケジュール
- 28. 1行のコードを複数回実行するJIRAプラグイン
- 29. setInterval関数は1回だけ実行されます
- 30. Javascript関数は1回だけ実行されます
通常、何か_conditionally_を実行するには、 'if'キーワードを使用する_conditional statement_を使用します。何があなたにはっきりしていませんか? –
私はそれが完全で有効で面白い質問だと思います。なぜ否定的な投票ですか?問題へのアプローチ方法には2つの良い答えがあります。 –
@SembeiNorimaki私は(それは私ではなかった)downvoteはそのような問題についてではなく、彼が実際に例を挙げなかったと思っています。 –