かつてマーク・ザッカーバーグは、コンピューターはコマンドの繰り返しが非常に得意であると指摘しました。人間にとってそれは簡単ではありません。同じことを何度も連続して繰り返すと飽きてしまいますが、コンピューターはそれを何百万回、何十億回行っても決して飽きることがありません。すべての Facebook ユーザーに挨拶を送ろうとすると、それを行うのに十分な日数を人間が費やすことはできません。ただし、数行のコードを記述することで、このタスクを解決するコンピューターを作成できます。これがループの仕組みです。同じ日常的な行動を繰り返さないようにしてくれるのです。Java で最も一般的なループは、いわゆる定義済みループまたは for ループです。
Javaでforループを書くにはどうすればよいですか? for ループ全般
for ループは、いくつかのステートメントを特定の回数実行します。たとえば、「私はそうではありません、ホーホー、ホー」と 50 回書いたり、友達全員に招待状を送ったりするのは、この種のループの典型的なタスクです。for ループの最も一般的なバージョンの構文は次のとおりです。
for ([counter initialization]; [checking conditions]; [changing of the counter])
{
// statements
}
初期化式は 1 回実行され、その後条件が評価されます。条件はブール式である必要があります。
- ループが開始されると、初期化が実行されます。
- 条件が false と評価されると、ループは作業を停止します。

Javaでのforループの使い方。簡単な例。
以下は特定の Java for ループの例です。「こんにちは!」を10回書いてみましょう。文字列は毎回、この行の番号を持つ新しい行からになります。次の出力が得られるはずです。- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
- こんにちは!
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ". Hello!");
}
}
}
使い方?
ステップ 1. カウンタ i = 0。ループは条件 i << 10 をチェックするため、ループ ステートメントが実行されます。「1. こんにちは!」というフレーズが印刷されます。1 は文字列 i + 1 です (ゼロから数えていますが、最初の行が最初のままであるため)。カウンタ i がインクリメントされます。ここで、i = 1. ステップ 2. カウンター i = 1. i < 10 なので、「2. こんにちは!」というフレーズが得られます。そして i + 1 = 2. … ステップ 10. カウンター i = 9、「10. こんにちは!」が得られます。ステップ11.カウンタi=10。i<10?いいえ、それは誤りです。したがって、ループは終了します。
While ループと for ループ: 相違点と類似点
Java では、ブール条件が true になると、無限ループまたは while ループが継続的に実行されます。while ループの構文:
while (boolean condition)
{
loop statements...
}
多くの場合、使用するループを選択することがあります。場合によっては、それらが非常に近くにあり、両方を使用できることもあります。たとえば、これは while ループを使用して書かれた同じタスク (行番号を付けて「Hello!」を 10 回書く) のコードです。
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // we use the counter this way
while (j < 10) {
System.out.println(j + 1 + ". Hello!");
j++;
}
}
}
ただし、プロのプログラマは while ループをあまり好まないため、可能な限り for ループを使用するように努めます。
ために | その間 |
---|---|
反復回数がすでにわかっている場合は、for ループを使用します。 |
反復回数が正確にわからない場合は、while ループを使用します。 |
初期化、条件チェック、カウンタ変更はすでにループの構文に組み込まれています。 |
ループ内の初期化と条件チェック。ステートメント内でさらにカウンタを使用することもできます。 |
無限ループ:
|
無限ループ中:
|
Javaでforループを終了する方法
通常、for ループはフローのように実行され、条件が false 値を取ったときにループを終了する自然な方法です。ただし、条件の false 値を取得する前にループを終了できる制御ステートメントが 2 つあります (break と continue)。- Break は、ループ条件が false と評価されたかのように、現在のループ本体を終了します。
- continue は、ステートメントを実行せずにループを次のステップ (カウンターの反復) にジャンプさせます。
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
// how to break out of a for loop, java: check if we have any "Stranger" in // our array
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
break;
}
System.out.println("Hello," + names[i]);
}
}
}
プログラムの実行結果は次のようになります。
Hello,Mike
Hello,Dustin
I don't chat with strangers
見る?私たちはルーカスとウィルに挨拶する前にループから逃げました。ここで、「見知らぬ人」を無視するだけで、他の友達に挨拶するためにループ内に留まるために、 continue を使用してみましょう。
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("Hello," + names[i]);
}
}
}
結果は次のとおりです。
Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
素晴らしい!私たちは友達全員に挨拶しましたが、知らない人とは話しませんでした。
for ループまたは for-each の拡張バージョン
For-each は、配列またはコレクションのすべての要素を処理する必要がある場合に使用される for ループの一種です。実際には、for-each というフレーズそのものがこのサイクルでは使用されていません。構文は次のとおりです。
for (type itVar: array)
{
Block of operators;
}
typeは反復変数の型 (配列のデータ型と同じ)、ItVarはその名前、array は配列、または別のデータ構造 (ArrayList など) です。ご覧のとおり、カウンターはなく、反復変数はインデックス値ではなく、配列またはコレクションの要素を反復します。このようなループが実行されると、反復変数に配列またはコレクションの各要素の値が順番に割り当てられ、その後、指定されたステートメント ブロック (または演算子) が実行されます。注意: for-each ループは、配列および java.lang.Iterable インターフェースを実装する任意のクラスに適用できます。友人に挨拶し、見知らぬ人 (「見知らぬ人」) を無視する場合の同じ問題を解決してみましょう。ただし、今回は for-each ループを使用します。
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
// for each loop, Java code
for (String name : names) {
if (name.equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("hello, " + name);
}
}
}
学んだことをさらに強化するには、Java コースのビデオ レッスンを視聴することをお勧めします。
さらに読む: |
---|
GO TO FULL VERSION