Javaプログラミング入門 – ループ処理

前回では条件分岐について学習した。条件分岐はプログラミングでも基礎となる要素になるので、ぜひ使いこなせるようにしたい。

さて、今回はループ処理について学習したい。これもプログラミングでは基本となる要素となる。今後、プログラミングを開発するのであれば、ぜひマスターしておきたい。

3種類のループ文

ループ処理を行うにあたって、主に使用される構文は3種類ある。それは以下の通りである。

  • for文
  • while文
  • do…while文

ループ処理を行うにあたって、基本的には上記を覚えておけば大丈夫である。

for文

for文は主に以下のコードとなる

[code lang=”java”]public class ForTest {
public static void main(Stirng [] args) {
for (int i = 0; i < 10; i++) {
System.out.println("現在の変数iの値: "; + i);
}
}
}[/code]

上記のコードはforを扱った文のサンプルコードである。for(…)の括弧は基本的に以下となっている。

for (ループに使用する変数の宣言およびその代入(1回だけ呼ばれる); ループ処理の条件(trueならforで囲まれた処理を行い、falseならスキップする); ループ終了後の処理(基本的にはi++など))

これによって、特定の回数を連続して処理を行うことができるようになる。

なお、上記の文は、以下のwhile文のような書き方でも実現することができる。

while文

while文は、主に以下のようなコードとなる。

[code lang=”java”]public class WhileTest {
public static void main(Stirng [] args) {
int i = 0;
while (i < 10) {
System.out.println("現在の変数iの値: " + i);
i++;
}
}
}[/code]

上記のコードは実際には処理としてはfor文とほぼ同じである。これも、while(…)の括弧内の条件の結果がtrueの限り、何度もwhile内で書かれた処理が繰り返される。

do…while文

do…while文は、主に以下のようなコードとなる。

[code lang=”java”]public class DoWhileTest {
public static void main(Stirng [] args) {
int i = 0;
do {
System.out.println("現在の変数iの値: " + i);
i++;
}while (i < 10);
}
}[/code]

do…while分の場合は、必ず1度はdo{}内の処理が行われた後、while部分の条件分岐でtrueの場合は、さらに同じ処理を繰り返す。前述のwhileとは違い、whileの条件に合致していなくても1度は処理を行われる点に気をつけなければならない。

無限ループ

for文およびwhile文、do…while文はいずれもあえて必ずtrueになるように書くことで無限ループにすることができる。例えば、

  • for(;;)
  • while(true)
  • do … while(true)

とすれば、いずれもtrueとなるので、無限ループとすることができる。しかしながら、こうした場合に何らかの形で処理を抜け出さないと、永久に処理が終わらないこととなってしまい、OS側から強制終了しないといけない状態となってしまう。そうなってはよくないので、通常は特定の条件に達したらbreak文を使用して抜け出すようにしなければならない。

例えば、以下のようにするとよい。

[code lang=”java”]public class WhileTest {
public static void main(Stirng [] args) {
int i = 0;
while () {
System.out.println("現在の変数iの値: " + i);
i++;
if (i >= 10) {
break;
}
}
}
}[/code]

上記のようにすることで、処理を抜け出せるようにできる。

これでループ処理を扱えるようになった。ここで学んだことを応用して複雑な処理を行えるようになれればよいだろう。さて、条件分岐について、前回ではtrue or falseの条件分岐について説明したが、多方向にわたる条件分岐については説明していなかった。次回はそれについて学習したい。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しております。仕事依頼や相談などについては、Contact Formよりお願いいたします。