はい、大体どちらも同じように使用できます。一般プログラマーは一生関わらないようなササいな違いを除けば『条件定義の仕方』しか違いはありません。
質問文の for文と while文とは「同じではない」ので『条件定義の仕方』以外にも違いがありますけどね。それは後述します。
使い分け、存在意義については、まさしく『条件定義の仕方』にあります。
for文やwhile文のような繰り返し処理は一般にループ(専門的には反復)と呼びます。ループには二種類あります。
・とある条件が満たされるまで同じ処理を無限に繰り返す
・回数を数える、配列を最後まで読み込むなどの、「最初」から始めて「最後」まで「順番」に繰り返す
前者が while文で、後者が for文です。コンピューターにとっては、後者も前者の一種です。まさに『条件定義の仕方』しか違いはありません。
ですが人間様にとっては大きな違いです。後者は「コンピューターにとっては同じ処理」であっても、人間様にとっては「対象が変わっている」ことになります。
例えば「教室の中にいる生徒を全員○○します」という処理の場合は、
・教室の中にまだ○○されていない生徒がいる間、教室の中にいる人間を一人○します。
・出席番号とか席順とかの順番で生徒を一人一人○○します。
の両方に解釈が可能です。後述しますが、ヤるだけならばヤることは一緒なので「解釈」の問題です。
前者の場合、サボっていた生徒や途中で逃げた生徒がいた場合、クラスの全員を○○することはできないかも知れません。
後者の場合、サボっていた生徒や途中で逃げた生徒がいた場合、その生徒がいないことは○○しようとした時に判ります。
ちなみに○○には「テストを返却」とか「通信簿を渡」とか入れられます。
コンピューターにとっては、言われた通りに愚直に行動するだけです。しかし人間は「行動」する以外にも、プログラムを読んで解釈したり、間違いが無いか確認したり、改造したりします。その時に「そもそもこの処理は前者後者のどちらの処理だ?」というのを考えながら読みます。
その時に「開始」「最後」「順番」が全部 for文の最初に「まとめて全部」が書いてあると、最初にそれを理解してから繰り返し処理を読むことになりますので、間違いがありません。
ですがこれを「コンピューターにとっては同じだから」と while文で書いてしまうと、保証ができなくなります。「開始」がはるか前の方に書いてあるかも知れません。もしかしたら「書き忘れている」かも知れません。同様に「順番」が繰り返し処理の中の何処に書いてあるのか探さないといけません。これも書き忘れていることは良くあるミスです。最悪、書いてあっても if文で「順番」が処理されたりされなかったりしているかも知れません。
なので while文の場合は、そういうことが無いように全部を細かく一文一文全てを見落としなく調べなければなりません。for文ならば先頭にそれらが全部書いてあります。探さなくてもあるか無いかもその内容も、すぐに判るのです。
その判り易さが重要になるので、後者の場合は for文で、前者の場合は while文で、と使い分けます。その方が「読み易い」ので「間違いが減る」からであり、それが存在意義です。
ちなみに質問文の for文と while文との違いです。正しくは、
for( i = 2 : i \u0026lt; 6 ; ++i ){ print i; }
i=2; while( i \u0026lt; 6 ){ print i; ++i; }
になります。もう少し勉強を進めてから見直してください。