0
私は再帰関数を書いています。ここではそのための擬似コードだ:再帰のreturn文を持つループ
public recFunction(Node node) {
for(int i=0; i<node.childCount(); i++){
Node child = node.child(i);
if(child.satisfies condition)
return true;
else
return recFunction (child)
}
return false
}
は今、ノードのような構造を有する:ここ
a
/\
b c
/\/\
d e f g
を、条件が唯一の「F」の場合に当てはまります。しかし、関数がdとeに移動してfalseを返すと、関数は "c"に移動することさえ気にしません。これの背後にある理由は何か。私は、特にリターン文を含むループを含むとき、再帰関数についてはいつも少しばかげていました。誰かがこのような場合に起こることを説明できますか?
これは疑似コードではありません。 – Tom