【Java】面倒なことはJavaに任せよう!「繰り返し(for文)」の基本を解説
はじめに
みなさんどうも、おげんです。
前回は「条件分岐(if文)」を使って、プログラムに判断させる方法を学びました。
これでプログラムは、単なる計算機から少し「知的な動き」をするようになりました。
さて、ここで皆さんに一つ質問です。
もし、画面に「こんにちは」と100回表示してと言われたら、どうしますか?
まさか、System.out.println("こんにちは"); を100行コピペ……はしませんよね(笑)。
そんな「人間がやるには面倒で、ミスもしそうな単調作業」こそ、プログラミングが最も得意とする分野です。
そこで今回登場するのが 「繰り返し(for文)」 です。
Java君に「この処理を100回やってね」とたった数行で指示を出すだけで、彼は文句ひとつ言わず、人間には不可能なスピードで正確に仕事をこなしてくれます。
今回は、エンジニアが楽をするために欠かせない「for文」の基本を、丁寧に紐解いていこうと思います。
- 同じコードを何行もコピペして疲れている人
- for文のカッコの中にある3つの式が、何を表しているのか混乱している人
- プログラムに「効率化」の魔法をかけてみたい人
for文の基本ルール
for文の書き方は、独特なルールがあります。まずは、基本の形を見てみましょう。
for (初期化式; 条件式; 変化式) {
// 繰り返したい処理
}カッコの中に3つの「呪文」が入っていますが、これらはJava君への「いつから」「いつまで」「どうやって」という指示書になっています。
実際のコードで見てみよう
例えば、「『こんにちは』を5回表示する」プログラムはこうなります。
for (int i = 0; i < 5; i++) {
System.out.println("こんにちは");
}たったこれだけで、Java君は「はい、喜んで!」と5回挨拶してくれます。
3つのパーツの役割分担
- 初期化式(
int i = 0;) 「0番から数え始めるよ!」というスタートの宣言です。このiは「カウンター」のような役割をします。 - 条件式(
i < 5;) 「5より小さい間は続けてね!」というゴールの設定です。 - 変化式(
i++) 「1回終わるごとにiを1つ増やしてね!」という歩幅の指示です。
なぜ「i」を使うのか?
結論から言うと、「index(インデックス:索引・指針)」 や 「iterator(イテレータ:反復するもの)」 の頭文字だと言われています。
- index(索引): 「今、何番目を数えているか」を示す目印
- iterator(反復者): 「繰り返し処理を行うもの」
昔からの「お作法」
プログラミングの長い歴史の中で、数学の行列などで i や j を使う習慣があったことも影響しています。
そのため、世界中のエンジニアが「繰り返しのカウンターには i を使う」という共通認識を持っています。
例えるなら、「数学の教科書で、正体不明の数字をとりあえず x と置く」感覚に近いです。
i 以外を使ってもいいの?
実は、i じゃなくても全く問題ありません!
for (int count = 0; count < 5; count++) {
// これでも動く!
}むしろ、実務ではもっと意味のある名前(studentIndex など)をつけることもあります。
しかし、単純な繰り返しの場合は「i と書いてあれば、誰もが『あ、これはカウンターだな』と一瞬で理解できる」という共通言語のような役割を果たしています。
for文を分解して理解しよう
「書き方はわかったけど、結局Java君はどう動いてるの?」
そんな疑問を解消するために、「スクワットを10回やる」という動作をfor文に当てはめて分解してみましょう。
for (int i = 1; i <= 10; i++) {
System.out.println(i + "回目のスクワット!");
}Java君の頭の中をのぞいてみると、こんな風に動いています。
- 準備(初期化式):
int i = 1;「よし、カウンターを1にセットしたぞ。今から1回目だ!」 - 確認(条件式):
i <= 10;「今は1回目。10回以下だから、まだ続けてOKだな」 - 実行(処理): 「1回目のスクワット!」と表示(ここで実際に体を動かすイメージです)。
- 更新(変化式):
i++「よし、1回終わったからカウンターを2に進めよう」 - ループ! また「2. 確認」に戻ります。「今は2回目。10回以下だから……」と繰り返します。
「ゴール」を過ぎたら終了
カウンターが11になった瞬間、Java君は「あ、10回を超えたから終わり!」と判断して、for文の波括弧 { } から抜け出します。
繰り返しの中で「if文」を使ってみる
for文(繰り返し)の中にif文(条件分岐)を入れると、プログラムはさらに賢くなります。
ただ回数をこなすだけでなく、「特定の時だけ違う動きをする」ことができるようになるからです。
実際のコードで見てみよう
例えば、「10回のスクワット中、3回目ごとに『プロテイン補給!』と表示する」プログラムを考えてみます。
for (int i = 1; i <= 10; i++) {
System.out.println(i + "回目のスクワット");
// 3の倍数の時だけ実行
if (i % 3 == 0) {
System.out.println("★プロテイン補給!★");
}
}このコードのポイント
i % 3 == 0:これは「iを3で割った余りが0の時(=3の倍数)」という意味です。- 組み合わせの力:for文が「体(エンジン)」なら、if文は「脳(判断)」です。
これを使えば、「100回メールを送るけど、エラーが起きた時だけログに残す」といった実務でよくある処理も作れるようになります。
注意!「無限ループ」の恐怖
for文をマスターした!と思って意気揚々とコードを書いていると、突然、誰もが一度は経験する「事件」が起きます。
それが、「無限ループ」です。
どんな状態?
名前の通り、繰り返しが一生終わらない状態のことです。例えば、こんなコードを書いてしまったら……
for (int i = 1; i > 0; i++) {
System.out.println("終わらないスクワット…!");
}この条件式 i > 0 は、1から増え続ける i にとって永遠に true です。 Java君は「よし、まだ条件に合ってるな!次!次!」と、超人的なスピードでスクワットをし続けます。
無限ループの止め方(環境別)
もし無限ループが発生して画面が止まらなくなったら、以下の方法で「強制終了」させましょう。PCの電源を切らなくても大丈夫です!
コンソール画面の右上(または左上)にある、赤い四角いボタン(🟥)をクリックしてください。これがプログラムを止める「停止スイッチ」です。
キーボードで Ctrl + C(コントロールキーを押しながらC)を同時に押してください。
これは「今動いている処理を止めて!」という、エンジニアが一番よく使う魔法のショートカットキーです。
まとめ:Java君に任せて楽をしよう
今回は、プログラミングの強力な武器「繰り返し(for文)」について解説しました。
- for文は「いつから」「いつまで」「どうやって」を指示する魔法。
- カッコの中の
iは、何回目かを数える大事なカウンター(共通言語)。 - if文と組み合わせることで、特定の時だけ違う動きをさせる「賢いループ」ができる。
- 無限ループは怖くない!赤いボタンや
Ctrl+Cでいつでも止められる
面倒で単調なことはJava君に任せて、私たちはもっと面白い「どんな仕組みを作ろうかな?」というクリエイティブな部分に集中する。
これが、エンジニアとしての第一歩です。
皆さんも、まずは「スクワット10回」をJava君にやらせてみるところから始めてみませんか?(笑)
今回も最後まで読んでいただき、ありがとうございました。 いっぽずつ、一緒に進んでいきましょう!
