[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

for文

pointこの用語のポイント

pointプログラムを書くときの構文だよ

point繰り返し処理を書くときに使うよ

pointfor(【1】,【2】,【3】){【4】}だったとすると、処理の流れは【1】→【2】→【4】→【3】→(以下【2】→【4】→【3】の繰り返し)だよ

スポンサーリンク

簡単に書くよ

for文とは

プログラミングで使う構文のひとつ
であり

一般的には「これだけの回数、同じ処理を繰り返してね~」な繰り返し処理を書くときに使う構文
です。

image piyo

詳しく書くよ

でやがりましたね。
基本的な構文で、さらっと表面をなぞると単純だけど、突っ込んで考えると奥深い悪魔が。

……と、個人的にボヤいたところで、順番に見ていきましょう。

プログラムは「人間様の代わりにコンピュータさんにあれこれ命令してくれるやつ」ね。
このプログラムを実際に作る作業を「プログラミング」と言います。

for文

プログラミングは、コンピュータさんに対して、仕事を指示する行為です。
「この場合は、あれしろ」「この場合は、これしろ」と、細かく指定していきます。

さて、このコンピュータさんに対する指示ですが、同じ処理を何回か繰り返してやらせたい場合があります。
例えば「肩を揉め、優しい手つきで100回な」とかですね。

多くのプログラミング言語で用意されている、このような処理を書くときの構文のひとつが「for文」です。
「このような処理」は一般的に「繰り返し処理ループ処理)」と呼ばれます。

for文の書き方は

for(【1】,【2】,【3】){
 【4】
}


のような形が一般的です。

Javaであれば、例えば以下のように書きます。

int i = 0;
for(i = 0; i < 5; i++){
 System.out.println(i);
}


簡単に説明しておきましょう。
1行目の

int i = 0;

は気にしないでください。
いわゆる「変数初期化」ってやつです。

2行目以降の

for(i = 0; i < 5; i++){
 System.out.println(i);
}


がfor文による繰り返し処理になります。

for(i = 0; i < 5; i++){

の「i++」は「変数『i』の中身に1を足す」処理です。
よく分からない人は「インクリメント演算子」の説明をご覧ください。

「System.out.println()」はJavaにおける「画面に表示してよ」な命令文です。

System.out.println(i);

は「画面に変数『i』の中身を表示してよ」を意味します。

それを踏まえて、for文全体は

1.変数「i」の中身は、最初は「0」だよ【1】
2.変数「i」の中身が5より小さい間、繰り返すよ【2】
3.画面に変数「i」の中身を表示するよ【4】
4.繰り返すごとに変数「i」の中身に1足すよ【3】


な処理になります。

int i = 0;
for(i = 0【1】; i < 5【2】; i++【3】){
 System.out.println(i);【4】
}


上記の処理を実行すると、画面には

0
1
2
3
4


と表示されます。
同じ処理が5回繰り返され、都度、変数「i」の中身が表示されていますね。

この処理のポイントは

同じ処理が5回繰り返された

です。

無理に変数「i」の中身を使う必要はありません。
例えば

int i = 0;
for(i = 0; i < 5; i++){
 System.out.println("ピヨ太");
}


と書けば、画面には

ピヨ太
ピヨ太
ピヨ太
ピヨ太
ピヨ太


と表示されます。

これは

画面に「ピヨ太」と表示する処理を5回繰り返した

と言えるでしょう。

このように、特定の処理を決まった回数繰り返したいときに使う構文がfor文です。

……というのが、表面をさらっとなぞった説明です。

for文を使う分には、これだけ知っておけば十分です。
同じ処理を決まった回数分だけ繰り返したいときの決まり文句と思って、かまいません。

まずは

for(i = 0; i < 【繰り返す回数】; i++){
 繰り返してやりたい処理
}


を決まり文句として覚えてください。

その上で、for文の使い方に慣れてきたら、きちんと中身を理解しましょう。

ここから先の説明は、もう少し突っ込んだ説明です。
何となく分かれば満足な人は読む必要ありません。
for文について、きちんと理解したい人は読んであげてください。

先ほども書きましたが、for文の書き方は

for(【1】,【2】,【3】){
 【4】
}


のような形が一般的です。

それを踏まえて、for文における処理の実行順序は

1.【1】(最初の1回だけ実行される)
2.【2】(条件判定:条件を満たさなければループを抜ける)
3.【4】
4.【3】
 ※以降2~4を繰り返す


です。

先ほど、Javaで以下の処理を書きました。

int i = 0;
for(i = 0【1】; i < 5【2】; i++【3】){
 System.out.println(i);【4】
}


この処理は

1.i = 0;【1】
2. i < 5;【2】(を満たすかの判定)
3.System.out.println(i);【4】
4.i++【3】
 ※以降2~4を繰り返す


の流れで実行されます。

しつこいですが、もう一度書いておきましょう。
for文の処理の流れは

1.【1】(最初の1回だけ実行される)
2.【2】(条件判定:条件を満たさなければループを抜ける)
3.【4】
4.【3】
 ※以降2~4を繰り返す


です。

プログラミング言語の種類にもよりますが、一般的なfor文には、それ以上の意味はありません。

例えば、Javaで以下のような処理を書いたとしましょう。

i = -1;
for(System.out.println("start"); true; System.out.println(i)){
 i++;
 if(i == 5){
  System.out.println("end");
  break;
 }
}


奇妙な書き方をしていますね。
読みやすい書き方をするという意味では大問題ですが、構文上は問題ありません。
普通に動きます。

実行すると、画面には

start
0
1
2
3
4
end


と表示されます。

この処理を先ほどのfor文の処理の流れに当てはめると

1.System.out.println("start");【1】
2. true;【2】(を満たすかの判定)
3.以下の処理【4】
  i++;
  if(i == 5){
   System.out.println("end");
   break;
  }
  ※変数「i」に1足して5になったらループを抜ける処理
4.System.out.println(i)【3】
 ※以降2~4を繰り返す


です。

i = -1;
for(System.out.println("start")【1】; true【2】; System.out.println(i)【3】){
 i++;【4】
 if(i == 5){【4】
  System.out.println("end");【4】
  break;【4】
 }
}


特に、おかしなことはないですよね。

あるいは、以下のような書き方もできます。

for(i = 0; i < 5; System.out.println(i++)){
 ;
}


この処理を実行すると、画面には

0
1
2
3
4


と表示されます。

この処理を先ほどのfor文の処理の流れに当てはめると

1.i = 0;【1】
2. i < 5;【2】(を満たすかの判定)
3.何もしない【4】
4.System.out.println(i++)【3】
 ※以降2~4を繰り返す


です。

for(i = 0【1】; i < 5【2】; System.out.println(i++)【3】){
 ;【4】
}


これも特におかしくはありません。

System.out.println(i++)

は少しややこしい書き方ですが

System.out.println(i);
i = i + 1;


と書いたのと同じ動きをします。
変数「i」の中身を画面に表示した後で、1足されます。

あるいは……もう、いいですかね。

かなりしつこいですが、for文の処理の流れは

1.【1】(最初の1回だけ実行される)
2.【2】(条件判定:条件を満たさなければループを抜ける)
3.【4】
4.【3】
 ※以降2~4を繰り返す


です。
それさえ満たせば、ある程度は自由に処理を書けます。

この性質を利用して、たまに、とんでもない書き方をする人もいます。
余裕があれば、処理の流れは押さえておいてください。

とはいえ、できればfor文でややこしい書き方をするのは止めてくださいね。
個人的には、単純に処理を繰り返す

for(i = 0; i < 【繰り返す回数】; i++){
 繰り返してやりたい処理
}


以外の書き方はしない方が無難だと思っています。

image piyo2

一言でまとめるよ

まぁ「for文」って単語が出てきたら「プログラミングで繰り返し処理を書くときの構文なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク