競技プログラミング用 知識集積所

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を見るコードを書くことで、実行内容を少しずつ変えることもできる。

条件式に使える基本的な記述

if分岐参照。

発展的な記述

if分岐も参照。
whileループのbreak;とcontinue;のところも参照。

注意点

if分岐も参照。
whileループも参照。

類似アルゴリズム

ループの基礎。
ループ回数がはっきりしていない場合はwhileループの方が書きやすい。

vector(未作成)などの中身を順に全部見るforループを書きやすくしたもの。

タグ:

forループ
ウィキ募集バナー