競技プログラミング用 知識集積所
forループ
最終更新:
sport_programming
-
view
雑な説明
変数の中身次第でコードを何回も実行する。
同じような処理を何度も繰り返したい場合に。
主に何回繰り返すことになるかわかっている場合に。
同じような処理を何度も繰り返したい場合に。
主に何回繰り返すことになるかわかっている場合に。
レベル
ABCのA問題以降。
基本的な記述
for (初期化; 条件式; 更新) { 繰り返し実行したいコード }
特に、同じことを10回繰り返してほしい場合、
for (int i=0; i<10;i++) { 繰り返し実行したいコード }
変数のiは、適切にかぶらない名前のものに変えること。
詳細な説明
whileループを書くときに、同じ処理を10回してほしい場合、
int i = 0; while (i<10) { // 何かのコード i++; }
と書くことになるが、最初のiの宣言と初期化や、更新のi++を書き忘れがち。
そこで、それと同じものを
そこで、それと同じものを
for (int i=0; i<10;i++) { // 何かのコード }
とまとめて書けるようにしたものと理解するとわかりやすい。
この「指定回数繰り返す」という書き方は頻出なので、絶対に書けるようにしておくこと。
この「指定回数繰り返す」という書き方は頻出なので、絶対に書けるようにしておくこと。
この場合の詳しい動作は、
- まず、iという変数を用意し、0で初期化する
- i<10であるか判定
- trueなので中身を実行
- i++して、iが1になる
- i<10であるか判定
- trueなので中身を実行
- i++して、iが2になる
- i<10であるか判定
- trueなので中身を実行
- (中略)
- i++して、iが9になる
- i<10であるか判定
- trueなので中身を実行
- i++して、iが10になる
- i<10であるか判定
- falseなのでループ終了
となる。
結果、数えてみると、中身が10回実行されている。
中身でiを見るコードを書くことで、実行内容を少しずつ変えることもできる。
中身でiを見るコードを書くことで、実行内容を少しずつ変えることもできる。
条件式に使える基本的な記述
if分岐参照。
発展的な記述
注意点
類似アルゴリズム
ループの基礎。
ループ回数がはっきりしていない場合はwhileループの方が書きやすい。
ループ回数がはっきりしていない場合はwhileループの方が書きやすい。
vector(未作成)などの中身を順に全部見るforループを書きやすくしたもの。