ちょっと説明がたりなかったね
特にオブジェクトの指定がなければ全部を調べるんだよ
重なっている は全部を調べて重なっているものを絞り込んで作用する
重なっていない は重なっていないかを全部を調べる

だからオブジェクトを個別に指定して使わないといけない場面って多いのよ

それと高速ループに通し番号つけてオブジェクト個別処理ってのは
ForEachが標準で使えなかった時代に考えられた方式だから
今は使う必要はほぼないよ
馴染みがないと難しいかもしれないけど日本公式ブログに記事とサンプルがあるから
それを見て何とか理解するしかない

小学生あたりでForEachを完全に理解出来たら将来有望って難易度だと思う