プログラミング言語を学ぶ際、基本的な構文の一つとしてfor文が挙げられます。ほとんどのプログラミング言語で使用されているfor文について理解することで、その利便性が分かってくるでしょう。この記事では、for文の基本的な構文から実際の使用例まで、初心者にも分かりやすく解説します。
for文とは?
for文は、特定の条件が満たされるまで繰り返し処理を行うループ構文です。これにより同じコードを何度も書く必要がなく、効率的に処理を記述できます。
各プログラム言語での記述例をご紹介します。
Javascriptでの記述例
下記のコードは、0以上5未満の整数を1つずつ出力します。
for (let i = 0; i < 5; i++) {
console.log(i);
}
forの後に続く()の中に、;(セミコロン)で区切った3つの引数が記述されています。その後に、ブロックでループ処理を記述します。
for文の3つの引数
let i = 0
ループ処理を始める前に1度だけ行われる初期化文です。
変数iを0で初期化しています。ここで初期化する変数はカウンタ変数と呼ばれ、慣例的にiが使われることが多いです。
i < 5
ループ処理を行う条件式です。1ループが始まる度に条件判定して、真であればループ処理を行います。
i++
ループ処理後の実行文です。1ループが終わる度に実行され、カウンタ変数を増加または更新します。
i++はiを1増加させる、という処理です。
処理
console.log(i);
処理内容です。
console.log関数は指定した引数を出力します。
大まかな流れは以下の図のようになります。
- iを0で初期化
- iが5未満か判定
- True :iを出力、iを1増加させる
- False:ループを終了する
- ②に戻る
Pythonでの記述例
先ほどと同様に、0以上5未満の整数を1つずつ出力します。
for i in range(0, 5) :
print(i)
i in range(0, 5)
i(カウンタ変数)を0で始めて、1ずつ増分して5になるまでループ処理を行うという文です。
print(i)
処理内容です。print関数は指定された引数を出力します。
break
ループ処理の途中でループを終了させたいときは、break文を使います。
Javascriptでの例
const numbersList = [1,3,5,0,9];
for (let i = 0; i < 5; i++) {
if (numbersList[i] === 0) {
break;
} else {
console.log(numbersList[i]);
}
}
このコードでは数値が複数入ったnumberList配列を定義して、配列の先頭から要素を出力しています。numberList[0], numberList[1], …といった順番でループ処理を行います。
numberListの要素が0だった場合、break文によってループ処理を終了させます。
出力は以下のようになります。
1
3
5
0が現れた時点で処理が終了しているのが分かります。
他の言語の例は以下です。
Pythonでの例
numbersList = [1,3,5,0,9]
for n in numbersList:
if(n == 0):
break
else:
print(n)
PHPでの例
$numbersList = [1,3,5,0,9];
for ($i = 0; $i < 5; $i++) {
if ($numbersList[$i] === 0) {
break;
} else {
echo $numbersList[$i] . PHP_EOL;
}
}
Javaでの例
List<Integer> numbersList = Arrays.asList(1,3,5,0,9);
for (int i = 0; i < 5; i++) {
if (numbersList.get(i) == 0) {
break;
} else {
System.out.println(numbersList.get(i));
}
}
C言語での例
int numbersList[] = {1,3,5,0,9};
for (int i = 0; i < 5; i++) {
if (numbersList[i] == 0) {
break;
} else {
printf("%d\n", numbersList[i]);
}
}
continue
ループ処理をブロックの途中で終わらせて、強制的に次のループに進めるときはcontinue文を使います。
const numberList = [1,3,5,0,9];
for (let i = 0; i < 5; i++) {
if (numbersList[i] === 0) {
continue;
} else {
console.log(numbersList[i]);
}
}
numberListの要素が0だった場合、continue文によって次のループに進ませます。
出力は以下のようになります。
1
3
5
9
0だけ出力が飛ばされているのが分かります。
他の言語の例は以下です。
Pythonでの例
numbersList = [1,3,5,0,9]
for n in numbersList:
if(n == 0):
continue
else:
print(n)
PHPでの例
$numbersList = [1,3,5,0,9];
for ($i = 0; $i < 5; $i++) {
if ($numbersList[$i] === 0) {
continue;
} else {
echo $numbersList[$i] . PHP_EOL;
}
}
Javaでの例
List<Integer> numbersList = Arrays.asList(1,3,5,0,9);
for (int i = 0; i < 5; i++) {
if (numbersList.get(i) == 0) {
continue;
} else {
System.out.println(numbersList.get(i));
}
}
C言語での例
int numbersList[] = {1,3,5,0,9};
for (int i = 0; i < 5; i++) {
if (numbersList[i] == 0) {
continue;
} else {
printf("%d\n", numbersList[i]);
}
}
for文は効率的なコーディングに不可欠
for文を使うと、繰り返し処理を簡潔に書ける上に、改修する際に変更範囲を狭めることができます。プログラムで頻繁に目にする機会があるので、是非身につけておきたい基本の構文の1つです。
コメント