見出し画像

java訓練#7(switch 文)

今日の授業

今日は switch 文 と、if 文の勉強をしました。
switch 文と if 文は少し似ているので混乱しないようにしないといけません。

switch 文について

switch 文は、多方向分岐(複数の選択肢から1つを選んで実行する)構文です。

例えば

次うち正解はどれですか?
1.オレンジジュース
2.コーヒー
3.どちらでもない

答えはこの3択のみです。このように答えが決まってる時にswitch文を使います。
if文のように1以上3未満のように答えが定まってない場合はswitch文は使いません。

コードを解説します。

switch (式の評価) {   
 case 定数:
   System.out.println(“文字列”);
   break;
 
 default:
   System.out.println(“文字列”);
   break;

「式の評価」には以下の物が入ります。
・計算式
・文字列
・定数

次に case 定数 。
定数の中には「選択されるもの」が入ります。上の例えで言うと、1,2,3の数字のどれかが入ります。定数の中には「選択されるもの」が入ります。上の例えで言うと、1,2,3の数字のどれかが入ります。
なのでこの case 定数 は選択肢分必要になります。
そして system.out.println を書いたあとは break; で閉じて下さい。
※system.out.printlnの部分は別の処理を記述しても大丈夫

最後の選択肢は default を使います。
default は「どちらでもない」と訳します。if 文 の else と同じようなものです。

上の例えをこのコードに入れると以下のようになります。

System.out.println(“次のうち正解はどれですか?”);
System.out.println(“1.オレンジジュース”);
System.out.println(“2.コーヒー”);
System.out.println(“3.どちらでもない”);

String line = reader.readLine();
int n = Integer.parseInt(line);

switch (n) {   
 case 1:
   System.out.println(“オレンジジュースです”);
   break;

case 2:
   System.out.println(“コーヒーです”);
   break;
 
 default:
   System.out.println(“どちらでもない”);
   break;
}

if 文 同様どれか一つだけ実行されます。

charAtメソッド

charAtメソッドとは、指定した文字列のインデックス(数字)を取得するメソッドです。文字列は 0 から数えられます。
「おはよう」という文字列の場合、
お = 0、は= 1、よ= 2、う= 3 となります。
コードは

char型 変数名 = line.charAt(取得したいインデックス);

この様になります。
変数のlineには入力された文字列が格納されていて、その文字列の指定したインデックスの文字を変数に代入します。
また、case を 連続で書くと、条件1または条件2のような意味合いになります。これは if文 の || と同じ意味になります。

System.out.println(“次のうち正解はどれですか?”);
System.out.println(“1.オレンジジュース”);
System.out.println(“2.コーヒー”);
System.out.println(“3.どちらでもない”);
System.out.println(“数字又は頭文字一文字で入力して下さい”);

String line = reader.readLine();
int n = Integer.parseInt(line);

switch (n) {   
 case1’:
 case ‘オ’:
   System.out.println(“オレンジジュースです”);
   break;

case2’:
case ‘コ’:
   System.out.println(“コーヒーです”);
   break;
 
 default:
   System.out.println(“どちらでもない”);
   break;
}

また、case を文字列で書くには以下のように書きます。

String line = reader.readLine();
switch (line){
case “文字列”:

switch 文と if 文 両方使う

switch と if 両方使うこともできます。

int n = -1;
switch (1 + n * n) {
case 1:
   if (n > 0) {
      System.out.println(“あ”);
   } else {
      System.out.println(“い”);
   break;

case 2:
   if (n > 0) {
      System.out.println(“う”);
   } else {
      System.out.println(“え”);
   break;

以下省略
}

解説します。

まず(1 + n * n)の答えは 2 です。ですので case 2: が当てはまります。次に n = -1 なので if (n > 0) ではないので else になります。
そして実行されるのは 「え 」になります。

この switch と if を両方使うとかなり複雑になるのでそれぞれしっかり理解しないといけません。

今日の授業は以上です。

公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓

最後まで読んで頂きありがとうございました。

少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?