0
0

More than 3 years have passed since last update.

javaの基礎の基礎②~if文とswitch文~

Last updated at Posted at 2021-01-08

・if文
①if文を使うと「もしも・・・ならば」という文章をプログラムで表現することができます。
 「もしも降水確率が50%以上なら、傘を持っていく」をプログラムで書いてみましょう。
 (if文を説明するためのプログラムの断片です)

 if (p >= 50) {
  System.out.println("傘を持っていきます");
}

 これは「変数pの値を調べ、その値がもしも50以上なら、"傘を持って行きます"と画面に表示する」という動作をします。
 上のプログラムは次のような構造をしています。
 
 if (条件式) {
  条件が成り立つときの処理
}

 条件式の値は、「条件を満たすときtrue(トゥルー)」、「満たさないときはfalse(フォルス)」になります。
 条件式の値は、必ずこのどちらかになります。
 ()でくくられた条件式の後には{}でくくられた処理がやってきます。これは条件が満たされたときに行う処理の範囲を示します。
 if文は、()の中の条件が満たされるかどうかを調べ、もし満たされるなら{}の中を実行し、満たされなければ{}の中を実行しません。
②if…else文を使うと「もしも・・・ならば・・・さもなくば・・・」という文章をプログラムで表現できます。
 
 if (p >= 50) {
  System.out.println("傘を持っていきます");
} else {
  System.out.println("傘を持っていきません");
}
 
 ここに登場する新しい言葉は「else(エルス)」です。まさに日本語の「さもなくば」に相当します。
 elseの後ろにはまた{}があります。ここには条件が成り立たなかった(満たされなかった)時に行う処理が書かれています。
 
 if (条件式) {
  条件が成り立った(true)時の処理A
} else {
  条件が成り立たなかった(false)時の処理B
}

 条件が成立すると同時に成立しない、などということはありません。したがって処理Aと処理Bのどちらか一方は必ず行われます。
③演算子「&&」は「~かつ~」を表すもので、演算子「||」は「~または~」を表すものです。
 
 0 <= n && n < 50
 
 は、「nが0以上である、かつ、nが50より小さい」となります。
 「条件式1 && 条件式2」は、「条件式1と条件式2の両方が成り立つときのみ真」となる条件です。
 次に、
 
 n < 0 || 100 < n

 は、「nが0より小さい、または、nが100より大きい」となります。
 「条件式1 || 条件式2」は、「条件式1と条件式2の少なくともどちらか一方が成り立ったとき真」となる条件です。
③if文の連鎖(else if)
 if(条件式1) {
    条件式1を満たすとき
} else if (条件式2) {
    条件式1を満たさず、
    条件式2を満たすとき  
} else {
    条件式1、2両方をみたさないとき
}
 ifとelseの間にelse ifを入れることによって三者択一になります。
 3つのうちどれか1つが必ず実行されるからです。
 人間にとって常識のことでも、コンピュータに常識を期待してはいけません。
 すべてきちんと明示的にプログラムを書かなくてはいけません。

・switch文
①多くの選択肢から1つを選んで実行するための構文を「switch(スイッチ)文」と言います。
 
  switch (式) {
  case 定数式1:
      処理1
      break;

  case 定数式2:
      処理2
      break;

  default:
      処理3
      break;
}

 {}でくくられた範囲が選択をするための候補たちです。
 候補のはじめには、候補ごとに「case(ケース)」と書きます。caseの最後にはコロン(:)を書きます。
 最後の候補には「default(デフォールト)」と書きます。これは「いままで1つ1つあげた場合のどれでもなかったら」という意味です。
 switch文のdefaultはif文のelseに相当するといってもよいでしょう。
 1つのswitch文の中にcaseは何個書いてもかまわないが、defaultは1個しか書けません。
 caseとして明示的に書かれていない値ならば、default以下が実行されます。
②caseとcase(あるいはdefault)の間に書かれるのが、選択された場合の処理です。
 処理の最後には「break(ブレーク);」を書きます。これは「ここで処理を終わります」という意味です。
 複数のcaseをbreakなしで書いておくと、同じ処理が行われます。言い換えれば、必要なbreakは書き忘れてはいけません。
 さもないと、他のcaseのところまでどんどん処理が進んでしまいます。
③switch文を実行する時、まず()でくくられた式が計算されます。これを「式の評価」と言います。
 式を評価した結果(計算の結果)、定数式1の値に等しければ処理1が実行され、もし定数式2の値に等しければ処理2が実行されます。
 定数式1と定数式2の両方の値と等しくなければ、defaultに対応した処理3が実行されます。
 switch文は、式の値によって処理を選ぶ構文です。ですから、1つのswitch文の中では、2か所以上のcaseに同じ定数式を書いてはいけません。
 同じ定数式が2つ以上あったら、どの処理を実行してよいかわからなくなってしまうからです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0