初心者のJavaプログラミング

プログラミングガチ初心者がIT業界を目指して頑張ります。

【第14回】初心者のJavaプログラミング【while, do while, switch】

こんにちは。
最近夜は風があって涼しいですね。
節約のため地球のためにエアコンは極力付けないようにしていますが、まだいけそうです。
これ以上暑くなるとさすがにやばいですね。

今日はwhile文、do while文、switch文について書こうと思います。

while文

while文はfor文と比較すると分かりやすと思います。

for (初期化セグメント; 条件式; 後処理) {
  処理1
  処理2
}
初期化ステートメント
while (条件式) {
  処理1
  処理2
  ...
  後処理
}

forの時のように()の中が3つに区切られていません。()の中の条件式がtrueである限り{}内の処理をぐるぐる行います。
だからこの()内にtrueとか書くと、無限ループになります。
windowsの方はコマンドプロンプト上で無限ループになってしまったら、Ctrl + C を押せば停止できます。最初なると結構ビビってしまうので覚えておいて損はないと思いますw

forはwhileで書き換えられますし、whileはforで書き換えられます。

for (int i = 1; i < 11; i++) {
  System.out.println(i);
}
int i = 1;
while (i < 11) {
  System.out.println(i);
  i++;
}

この二つは同じです。
while の方が自由度が高そうな気がします。

do while

do {

} while(条件式);

これがdo whileの形です。while文との決定的な違いは条件判定が後にあるということです。プログラムというのは上から下に処理をしていきますので、最初は無条件でdo {} の処理が実行されます。その後条件判定に移り、条件を満たしていれば、また{}の処理が行われます。
無条件に最初の1回は処理が行われるということが特徴です。

switch

switch () {
  case ケース1:
    処理;
    break;
  case ケース2:
    処理
    break;
  case ケース3:
    処理
    break;
  default:
    break;
}

構文はこのような形になります。

以下例文です。

int i = Integer.parseInt(args[0]);
  switch (i) {
    case 1:
      System.out.println("いち");
      break;
    case 2:
      System.out.println("にー");
      break;
    default:
      System.out.println("なんじゃこりゃー");
      break;
}

入力された文字が1の時、いちと表示させる。
入力された文字が2の時、にーと表示させる。
上記のどれにも当てはまらないときは、なんじゃこりゃーと表示させる。

caseと書いてあるし何となく感覚で分かると思います。

breakは、条件文の処理をそこで終わらせるという意味を持っています。
1を入力した場合を見ていきます。
コマンドライン引数が1の時、case1の処理が行われます。
case1の処理は2つありますね。
まずSystem.out.println()関数でコマンドプロンプト上に"いち"を表示させます。
その後にbreakとありますので、これでswitch内の処理は終わりということになります。

もし仮にcase1の処理にbreakがなく、コマンドライン引数が1だった場合はどのようなしょりが行われるでしょうか。
まずコマンドプロンプト上に"いち"が表示されますね。
そのあとbreakがないので、次のcase2の処理にはいってしまうんです。
case2の処理はコマンドプロンプト上に"にー"を表示させます。
次ぎの処理がbreakなので、ここでやっとswitch処理が終わります。

イメージとしては上からボールを落としている感じです。
breakが板みたいな感じ。
板があるところでボールがとまり処理が終了するイメージです。

f:id:fightingneetkun:20140731181302p:plain

あまり使いどころはないらしいですが、使いようによっては便利なときがあるらしいです。
季節を表したりするときに便利みたいですね。
4と入力すると春ですと表示されるようなプログラムです。
ifで書いたらまたはとか色々組み合わせなきゃなりませんからね。


条件分岐や繰り返しの構文は以上になります。
中でも使用頻度が高いのは圧倒的にif文とfor文らしいので、最悪これが分かっとけば何とかなるらしいですw


では今日はこのくらいで。
お疲れさまでした。


参考書

独習Java 第4版

独習Java 第4版