IT転職・プログラミングスクール

必ず出題されるswitch文【Java Silver例題】

Java Silver 例題

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。

今回はswitch文についてです。

Java Silverではswitch文は必ずと言っていいほど出題される問題です。

switch文の出題パターンは2つしかないので、しっかりと対策をしましょう。

 

問題:switch文について

早速ですが、次の2問を解いてみてください。

問1

A.    12
B.    412
C.    4122
D.    43122
E.    コンパイルエラー

 

問2

 

いかがでしょうか?

 

問2は意外と難しかったのではないでしょうか。

答えは
問1 D
問2 B,G,Hです。

 

Java Silver 問題集
参考記事【Java Silver問題集】高頻出・間違えやすい問題たち

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。 出題確率が高く、間違いやすい例題が解説付きで100問以上あります。   Java Silver 問 ...

続きを見る

 

解説と解くコツ

switch文の構文は次の通りです。

switch( 条件式 ) {
  case値 : 処理
  default : 処理
}

 

switch文の知っておくべきポイントは次の通りです。

switch文のポイント

●case式の処理はbreakまで順に処理される

●default式はcase式の最後でなくても良い

条件式に扱える型は次の3つです
1. 文字(char)と文字列(String)
2. int型以下の整数型とそのラッパークラス
3. 列挙型(enum)

ポイントを1つずつ解説していきます。

 

case式の処理はbreakまで順に処理される

switch文は条件式と一致するcase式の処理を実行した後、break式が現れるまで別のcase式の処理も実行されていきます

このときdefaultの処理がある場合も処理は実行されます。

そのため、次の例では「break」が存在しないので、一番上のcase式の処理が実行される、全ての処理が順に実行されていきます。

 

出力結果
あ〜
い〜
う〜
え〜

 

default式はcase式の最後でなくても良い

一般的にdefault式はcase式を並べた最後に書かれることが多いのですが、実はdefault式はどこに記述しても問題はありません。

なので、case式の一番上にdefault式を記述してもコンパイルエラーにはなりません。

 

条件式に扱える型

switch文の条件式に適用できる型として次の特徴を覚えておくといいでしょう。

1.  文字と文字列
(char,String)

2. int型以下の整数型とそのラッパークラス
(byte,short,int,Byte,Short,Integer)

3. 列挙型
(enum)

 

反対に、条件式に適用できない型は次の型です。

1.  boolean型

2. int型よりサイズが大きい整数
(long,Long)

3. 浮動小数点型
(double,float)

 

解説

ここまでのポイントを理解していれば、今回の2問は簡単に解くことができます。

A.    12
B.    412
C.    4122
D.    43122
E.    コンパイルエラー

 

7行目でswitch文の条件式にiが用いられており、for文よりiは0,1,2の値をとります。

iが0の場合、case式に一致するものがないので11行目のdefaultの処理を実行し、"4"を出力します。

この後、breakがないので12行目の処理も続けて実行し、"3"を出力します。

ここでswitch文が終わるので、iに1が代入されswitch文を繰り返します。

iが1のとき、case 1と一致するので、8行目が処理されて"1"が出力され、続けて9行目の処理で"2"も出力されます。

次の10行目でbreakが現れるので、switch文を抜けてiに2が代入されます。

iが2のとき、case 2に一致し9行目の処理で"2"が出力され、10行目のbreakで処理が完了します。

 

したがって、このプログラミングでは"43122"が出力されるため、答えはDです。

 

この問題は、条件式に適用できない型の特徴を思い出すと解けます。

条件式に適用できない型は、boolean型int型よりサイズが大きい整数(long,Long)浮動小数点型(double,float)です。

したがって、boolean型とlong型、float型は適切でないため、答えはB、G、Hです。 

 

 

Java Silver 問題集
参考記事【Java Silver問題集】高頻出・間違えやすい問題たち

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。 出題確率が高く、間違いやすい例題が解説付きで100問以上あります。   Java Silver 問 ...

続きを見る

-IT転職・プログラミングスクール
-,

Copyright© 人生2段飛ばし , 2020 All Rights Reserved Powered by AFFINGER5.