そういう制御文だからな
そういう仕様だ

for ( [ループ前に行う演算]; [ループが処理される条件]; [次のループが処理される前に行う演算] )

i = 1;
whlle (i <= 5) {
 ・・・
 i++
}
と同じ

どれもすべて入れても入れなくてもいい
for (;;) こう書くと無限ループになる