for( int i=0; i<n; i++ )

という書き方について、自分としては使い捨てのインスタント変数を作ってその場で捨てれるので便利だと思うんですが
学校の先生は「メモリ確保→開放の分だけ処理が重くなるからなるべく使わないように」と説明していました

でも参考書などではwhile文の中身で変数を用意していることも多く、中にはこういう書き方を推奨してるようにも見えて少しこの説明に疑問を感じます
処理はどの程度重くなるのでしょうか、処理を軽くしたい時には変数のメモリ確保を減らすのはどの程度有効なのでしょうか