lesson5 条件分岐

①if(){}

 変数に対して、条件を指定し、その条件に該当する場合のみ、その後に続く処理をする。

 

int a = nam1

if(a == 0){

    System.out.println("頑張りましょう。");

  }

else if(a <= 2){

    System.out.println("あと少しです。");

  }

else if(a <= 4){

     System.out.println("合格です。");

  }

else if(a == 5){

      System.out.println('⚪︎');//1文字は「'  '」でくくる

  }

 

ⅰ順序

 上記のコードは変数aをに対し、指定した範囲で分類した結果を状況に応じて画面に出力する。上から順に処理されていくので、カッコ内の「条件指定の式」は、より小さい範囲から指定してく。

 上のコードを見てみると、ifのブロックは、区切られていない。if(a == 0)の後ろに記述されている事になっている。「 ; 」が存在しない。「 )」の後ろに;をつけた場合は、if文は成立しなくなる。

 

ⅱ宣言

 if(  )または、else if(  )のカッコ内では、宣言や初期化はできない。演算も行わない。「演算の式」はカッコ内に記載せず、if文の外(前)に記載する。カッコ内は、「演算の式」の結果に対し、「条件指定の式」を記述する。

 

ⅲ 条件を表す記号

if(  )または、else if(  )のカッコ内では、条件指定として不等式( >= <= < > )を使う。等しいという意味で=を用いているので、代入とは異なる事を示す為、==を使う。

&&や||を使う事によって、2つの条件が重なる時や、どちらか一方の条件が重なる時のみなどの条件を指定できる。

 

ⅳ 処理

その後に続く{  }内での処理は、System.out.println()以外にも初期化や代入も処理できる。処理を記述する際はインデントを行い後から見ても見やすくする。「条件指定の式」の部分ではできなかった宣言も代入もできる。

 

 

②switch

 演算結果に対して、数値や文字を1つづつ指定し、その数値や文字に該当する場合のみ、処理を行う。

int num1 = Integer.parseInt( str1 );

int num2 = Integer.parseInt( str2 );

 switch(num1 + num2){

   case 1: 

               System.out.println("計算結果は1です");

               braek;

   case 2:

               System.out.println("計算結果は2です");

               braek;

   case 3:

               System.out.println("計算結果は3です");

               braek;

  default:

               System.out.println("1〜3以外です");

               braek;

   }

ⅰ  順序

 上記コードの、switch()のカッコ内には「演算の式」を記述し、その結果をcaseの後に記述する。ifのような、「条件の指定の式」は記述出来ない。その代わりに具体的な数値や文字を指定できる。演算の式は、{  }内全てに適用される。

 

ⅱ  文字や数値を指定する

 指定したい数値や文字を、caseの後に記述する。数値の終わりに「 : 」をつける。※「 ; 」ではない。文字を指定する場合は、case 'a': と記載する。:注意:文字はchar型で宣言する。

 

ⅲ  文字を抜き出す

 BuffededReaderクラスからString型(文字列)で入力された文字を抜き出すことができる。

String str1 = br.readLine();

char i = str1.charAt(0);

iに文字列str1の最初の文字を代入する。()内の数値が何番目の文字を抜き出すかの基数となっている。

 

ⅳ  braek;

 各「case 〜:」のブロックは必ずbraek;で締めくくる。switch()の場合上から順番に処理をしていくので、braek;を使わないと構文の中から抜け出すことができない。2つ以上のcaseにて、同じ結果になる場合は、braekを入れずに記述する事もできる。

 

ⅴ  処理

 case以下の部分には、System.out.println("  ");

以外にも、宣言や初期化もできる。ifのⅳと同じ。