|
必聴講座ご紹介 Cloud Days Tokyo 2012 エムオーテックス Cloud Days Tokyo 2012 ヴイエムウェア Cloud Days Osaka 2012 アマゾン データ サービス ジャパン |
新人IT技術者のためのJavaプログラミング入門 第3回(下)メディアプラネット 中島省吾***** 前回(上)を読む*****
条件分岐とは条件が成り立つかを判断し,その結果によって処理を変えることを「条件分岐」といいます。条件は,式を評価することで判断します。条件分岐を行うにはif文とswitch文を使うことができます。if文if文は,条件判断の部分がtrueかfalseかによって処理を行うか否かを判断します。条件判断の部分を「条件式」と呼び,式を評価した値はboolean型でなければいけません。boolean型は真(true)か偽(false)の2つの値のどちらかをとります。条件式には関係演算子が多く使われます。if文には大きく分けて以下のような書き方があります。 if文
まず,もっとも単純なif文から説明します。上の構文は,「条件式が成り立つときは処理を実行する」という意味になります。このことを裏返せば,条件式が成り立たない場合,処理は実行されないということです。 { と } の間の処理は,複数のステートメントを記述することも可能です。また,Javaはフリーフォーマットなので,{ と } の間で改行しなくても問題ありません。例えば,下記のように記述しても結果は同じです。
また,記述するステートメントが1つしかない場合は,{ と } を省略できます。
ただし下記のようなコードの場合,処理2は条件判断とは関係なく,常に実行されるので,{ と }を省略する場合は注意が必要です。
if文の練習以下のコードを入力し,ifTest.javaで保存して実行しましょう。
コンパイルして実行しても,何も表示されません。
変数aは,宣言と同時に0に初期化されています。ifに続く ( と ) の間の条件式では,変数aが100かどうかを判断しています。「==」は右辺と左辺が等しいときにtrueを返す関係演算子です。つまり,変数aが100のとき,処理は実行されます。当然,このコードでは,変数aの値は0ですから,if文の中の処理は実行されません。 では,次のように初期値を0から100に変更してみましょう。
この場合は,aは100に初期化されているので,if文の条件式はtrueになり,画面には「aは100です。」と表示されます。
if else文if else文は,elseにより「条件式が成り立たない場合の処理」を定義できます。
上の構文は,「条件式が成り立つときは処理1,成り立たない時は処理2」が実行されます。つまり,elseの { と } の中には条件が成り立たなかった場合,実行する処理を記述します。 if else文の練習以下のコードを入力し,ifTest.javaで保存して実行しましょう。
このプログラムを実行すると,aは0で初期化されているので,最初のif文の条件は成り立たず,画面には「aは100ではありません」と表示されます。
前回のプログラムでは,条件が成り立たなかった場合は,処理は行われませんでしたが,elseを書くことで,成り立たなかった場合の処理も書けるようになりました。 複数のif文を連結する(else if文)条件が1つではなく,複数の条件を調べて処理を切り分けるには「else if」を使います。 条件の指定方法はifと同じように ( と ) の間に条件式を書きます。例えば,「条件式1が成り立つ場合は処理1を実行し,さもなくば(条件式1は成り立たないが),条件式2が成り立つときは処理2を実行する」といった場合以下のような記述になります。
このような,else ifは,条件式がたくさんある場合,いくつでもつずけることができます。また,どの条件にも当てはまらない場合の処理をelseで記述することもできます。
連結したif文の練習以下のコードを入力し,ifTest.javaで保存して実行してみましょう。
このプログラムでは,最初に変数aが0かどうかを判断し,0でなければ100かどうかを判断します。もし,どちらでもない場合は,elseの中が実行されます。
このコードの場合は,aは0に初期化されているので,「aは0です。」と表示されますが,aを100やその他の数字で初期化した場合,表示される文字は変わります。確認しておいてください。 switch文switch文は式の値によって,複数の処理の中から実行する処理を選択できます。
まず,switchの後の()内の式の値が返されます。この場合の式は「byte型」「short型」「int型」「char型」のいずれかでなければいけません。もし,その値と同じ値を持つcase文があった場合,そのcase文のすぐ下から処理が進みます。処理を中断してswitch文から抜ける場合は,break文を記述します。break文がない場合は,その下のcase文も実行されます。
変数aは0に初期化されています。そのため,このプログラムを実行すると,「aは0です。」と表示されます。
初期化のコードを0以外にしてコンパイルと実行を繰り返して動作の違いを確認してください。 注意する点は,case以降の処理を中断するためにはbreak文が必要なことです。例えば,以下のようなコードを実行してみてください。
実行すると
aは0です。 と連続して表示されてしまいます。
これは,break文が無いため,case 0:以降のコードをすべて実行してしまうためです。 連載新着記事一覧へ >>
|