これら2つのforループスタイルの表現内容に違いはありますか?

これら2つのforループスタイルの表現内容に違いはありますか?

forループには2つの構文スタイルがあります。

for (( expr1 ; expr2 ; expr3 )) ; do commands ; done

for name [ [in [words ...] ] ; ] do commands; done

一見すると、両方を表現できるループ型は互いに関係がないようです。 1つ目は算術式に基づいてループを表現できますが、2つ目はセットの列挙されたメンバーに基づいてループを表現できますwords

本質的に表現できるループの種類は実際に異なるのですか、それとも互いに同じですか?前者なら、いつどれを使うべきですか?

ベストアンサー1

2番目の形式は常に有限であり、1番目の形式は単に無限に繰り返すことができます。

for ((;;)); do echo $SHELL; done

おすすめ記事