【はじめてのJava】基本構文編(条件分岐) ~復習問題~
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
条件分岐 ~復習問題~
これまでプログラミング内で、使用頻度の高い基本構文について学習を進めてきました。その中でも今回は「条件分岐」について総括をし、JavaSilverにおいてよく狙われるポイントを確認していきます。
if文、else文、else if文を用いた条件分岐の選択問題を扱います。
目次
条件分岐のおさらい
条件分岐 とは、条件の結果によって処理の内容を分岐させる構文です。if文、switch文、case文の3種類の構文での記述が可能で、if文に関してはelse文やelse if文を使用することで細かな分岐の指定が可能でした。
条件分岐に関する各記事は、下記を参照してください。
(1)if文及びelse文、else if文 if文記事はこちら
else文、else if文記事はこちら
(2)switch文 記事はこちら
(2)case文 記事はこちら
問題
それでは、さっそく問題を解いてみましょう!
次のプログラムをコンパイル・実行したときの結果として、正しいものを選びなさい。
public class Sample1{ public static void main(String[] main) { int num = 15; if (num != 15) { System.out.println("a"); }else if(num == 3+2*3){ System.out.println("b"); }else if(num ==15) { System.out.println("c"); } else{ System.out.println("d"); } } }
A. cと表示される。
B. cdと表示される。
C. bと表示される。
D. 何も表示されない。
E. 実行時に例外がスローされる。
F. コンパイルエラーが発生する。
解答
解答 A
>java Sample1
c
今回の問題を解く上で注意すべきポイントは、2点です!
[1]else文とelse if文の違いの理解[2]elseとif間に改行が含まれる場合の、フローの理解
これら2点に注目し、設問を見ていきましょう!
今回の問題では、num=15と定義がされ、その値15に従って条件分岐するフローとなっております。
(1)まずif文で条件1(num != 15)が提示されています。【4行目】
→こちらは15!=15はfalseとなり、条件該当しませんので、次のelse if文に移行します。
(2)次に条件2(num == 3+2*3)が提示されています。【6行目】
→こちらは3+2*3は、乗算が優先され3+6と計算され、条件は15==9となります。したがって15==9はfalseですので、条件該当しませんので、次のelse文に移行します。
(3)次が一見else if文に見えますが、elseとif間に改行が含まれております。【8・9行目】
したがって、こちらはelse文の中に新たな条件3(num ==15)が提示されているものと解釈されます。
→こちらが15==15でtrueとなり、実行分System.out.println(“c”)にフローします。
(4)最後にelse文が記述されておりますが、こちらは(3)のif文での例外処理の記述となり、条件3が条件一致し実行分に移行しているので実行されません。
よって解答は、A. cと表示される。になります!
フローの流れを図示すると下記の通りとなります。
次回の内容
今回は基本構文の1つである条件分岐の復習問題を扱いました。
条件分岐は、フローの流れを追うことが非常に重要です。
次回は、新たな基本構文として繰り返し処理を学びます!
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編
演算子編