whileとforはどう使い分けるべきですか?