その条件ごとで処理を変えたいことがあります。
例えば、
右の宝箱を開けると「ブレイブブレイド」がもらえる。
左の宝箱を開けると「チキンナイフ」がもらえる。
みたいな時です。
(やっぱりFF5。因みにsirocoはチキンナイフ派)
これをJavaで書くと次のような感じ。
if (右の宝箱を選択) {
// ブレイブブレイドを入手
} else {
// チキンナイフを入手
}
簡単な英語が分かれば理解できると思いますが、if を使用して条件文を表すことができます。
if のあとの括弧内に条件をいれ、それが真の時に { } 内の処理を実行します。
else はif の条件を満たさない場合を意味し、else以降の { } 内の処理を実行します。
では次の条件をif 文で書いてみます。
『変数num が0ならば、変数str に"ぜろ"を代入し、num が1ならば、str に"いち"を代入し、それ以外なら、str に"それ以外"を代入』
int num = 0;
String str;
if (num == 0) {
str = "ぜろ";
} else if (num == 1) {
str = "いち";
} else {
str = "それ以外";
}
else のあとに if を続けることで、条件を続けて書くことができます。"=="は、その左の値と右の値が一致するという意味です。
(オブジェクトの場合は、左右のインスタンスが一致)
"=="など値の比較を行うものを、比較演算子と言います。
比較演算子には次の種類があります。
| < | 小なり |
| <= | 小なりイコール |
| == | イコール |
| >= | 大なりイコール |
| > | 大なり |
『変数num が10より大きくて、且つ20より小さい場合は変数str に"あたり"を代入』
これをif 文で書くと、、、
int num = 12;
String str;
if (num > 10) {
if (num < 20) {
str = "あたり";
}
}
条件を加えてみましょう。『それ以外の場合は、strに"はずれ"を代入』
int num = 12;
String str;
if (num > 10) {
if (num < 20) {
str = "あたり";
} else {
str = "はずれ";
}
} else {
str = "はずれ";
}
なんだか見にくいですね。
おまけに"はずれ"を代入するところが重複しています。
これは次のように書きかえれます。
int num = 12;
String str;
if (10 < num && num < 20) {
str = "あたり";
} else {
str = "はずれ";
}
すっきりしました。ここで出てくる"&&"はANDを意味し、短絡演算子と言います。
短絡演算子は次の種類があります。
| && | 論理積(AND) |
| || | 論理和(OR) |
これでたいていの条件文は書けるんではないでしょうか。
ここで補足。
if 文の括弧の中に入る条件はboolean型です。
(真偽値、TRUEとかFALSEってやつ。ここででてきた)
つまり次のような書き方もできます。
int num = 12;
String str;
// boolean型の変数isHitに条件式を代入
boolean isHit = 10 < num && num < 20;
if (isHit) {
str = "あたり";
} else {
str = "はずれ";
}
まあ、通常はこんな書き方はしないでしょうが、
メソッドの戻り値にbooleanを使用する場合なんかはありますね。
演算子の説明をしてきたので、その他の良く使う演算子も紹介します。
まずは算術演算子。
| + | 加算(足し算) |
| - | 減算(引き算) |
| * | 乗算(掛け算) |
| / | 除算(割り算) |
| % | 余算(余り) |
int num1 = 10 / 2; // 5を代入(10÷2) int num2 = 2 + 8 / 2; // 6を代入((8÷2)+2) int num3 = (2 + 8) / 2; // 5を代入((8+2)÷2)演算順序は算数と同じですね。
(わからない人は小学校の算数を見直しましょう(笑))
あとは論理演算子。
| & | 論理積(AND) |
| | | 論理和(OR) |
| ^ | 排他的論理和(XOR) |
| ! | 否定(NOT) |
これはあまり使わないかもしれませんが、"!"は良く使うので覚えておいたほうがいいです。
int num = 12;
String str;
// boolean型の変数isHitに条件式を代入
boolean isHit = 10 < num && num < 20;
// isHitでない、という意味になる
// つまり10以下、もしくは20以上の場合に"あたり"を代入することとなる
if (! isHit) {
str = "あたり";
} else {
str = "はずれ";
}
今回は以上です。
次回はオブジェクトの比較について書いてみようかな~
(最近blogばっかり書いてアプリ作りしてない気がするw)
0 件のコメント:
コメントを投稿