「論理AND、論理OR」の編集履歴(バックアップ)一覧に戻る
論理AND、論理OR - (2007/10/26 (金) 23:19:33) の編集履歴(バックアップ)
同定演算子と比較演算子は論理値を扱う演算子でした
論理AND演算子と論理OR演算子はそれらを複数つなげることが出来ます
論理AND演算子と論理OR演算子はそれらを複数つなげることが出来ます
論理AND演算子 &&
左の値と右の値がともに真だったら真になります
左の値と右の値がともに真だったら真になります
if(3 > 1 && 4 < 6) { // 3>1, 4<6どちらも真なので全体で真になる
System.inform("真です");
}
if(3 > 1 && 4 > 6) { // 3>1は真だが4>6は偽なので全体で偽になる
System.inform("ここは表示されない");
} else {
System.inform("偽です");
}
if(3 < 1 && 4 > 6) { // 3<1が偽なので全体で偽になる
System.inform("ここは表示されない");
} else {
System.inform("偽です");
}
三つ以上をつなげることもできます
その場合は全て真ならば全体で真になります
その場合は全て真ならば全体で真になります
if(3 > 1 && 4 < 6 && 5 == 5) { // 3>1,4<6,5==5は全て真なので全体で真になります
System.inform("真です");
}
論理OR演算子 ||
左の値と右の値どちらかが真だったら真になります
左の値と右の値どちらかが真だったら真になります
if(3 > 1 || 4 < 6) { // 3>1が真なので全体で真になる
System.inform("真です");
}
if(3 > 1 || 4 > 6) { // 3>1は偽だが4>6は真なので全体で真になる
System.inform("真です");
}
if(3 < 1 || 4 > 6) { // 3<1,4>6どちらも偽なので全体で偽になる
System.inform("ここは表示されない");
} else {
System.inform("偽です");
}
&&と同様に3つ以上つなげることも出来ます
その場合はどれか一つが真ならば全体は真になります
その場合はどれか一つが真ならば全体は真になります
if(3 > 1 && 4 < 6 && 5 == 5) { // 3>1,4<6,5==5は全て真なので全体で真になります
System.inform("真です");
}
()で囲むと分かりやすいという人もいるかもしれません
囲んでも囲まなくても自由です
囲んでも囲まなくても自由です
&&と||両方を使う事も出来ます
条件1 && 条件2 || 条件3
例えばこの場合、「条件1 && 条件2」の部分が先に評価され、
条件1と条件2がどちらも真の場合、真 || 条件3 となり、条件3の値に関わらず真になります
条件1と条件2のどちらかが偽の場合、 偽 || 条件3 となり、条件3の値が真の場合は真になります
まとめると「条件1 && 条件2 || 条件3」が真になる条件は
「条件1と条件2が真」または「条件3が真」
となります
見た目そのままですね
条件1 && 条件2 || 条件3
例えばこの場合、「条件1 && 条件2」の部分が先に評価され、
条件1と条件2がどちらも真の場合、真 || 条件3 となり、条件3の値に関わらず真になります
条件1と条件2のどちらかが偽の場合、 偽 || 条件3 となり、条件3の値が真の場合は真になります
まとめると「条件1 && 条件2 || 条件3」が真になる条件は
「条件1と条件2が真」または「条件3が真」
となります
見た目そのままですね
条件1 && 条件2 || 条件3 || 条件4 && 条件5 || 条件6
が真となる条件は
「条件1と条件2が真」または「条件3が真」または「条件4と条件5が真」または「条件6が真」
です
が真となる条件は
「条件1と条件2が真」または「条件3が真」または「条件4と条件5が真」または「条件6が真」
です
たくさんつなげると分かりにくいのであまりつなげるのはお勧めしません