前回でDart演算子マスターになったよ!計算も代入もなんでもこい!
その自信はよし!ただまだまだ演算子には種類があるんだ!他の値と比べたりするものがあるんだよ。
比べる?
この記事ではDart言語における比較演算子、等価演算子、論理演算子についてわかりやすく解説します!
前回の記事はこちら!
比較演算子・等価演算子とは
まずは「大なり」「小なり」というのはわかるかな?
なんかたまに聞くけど…記号かなんかだよね?
そうだね!大なりは「>」、小なりは「<」になるよ。記号の形が広がっている方が大きいと正しい、ということになるね!
数学では不等号という形で大なり、小なりというものを学んだと思います。プログラミングの世界、Dartでもこの不等号を使います。これら値を比較する演算子を比較演算子といいます!また、値が等しいかどうかの演算子に関しては等価演算子といいます。
比較演算子、および等価演算子はその式が正しければ真、つまりtrueを返します。逆に間違っている・正しくなければ偽、つまりfalseを返します。
ようわかりません…。
では具体例を見てみましょう。実際に見てみるとどんなものかわかるかと思います。
Dart言語で以下のようなプログラミングをしてみました。
まず4行目では8と5を比べます。この比較演算子は大なり(左が大きいか)になります。8と5を比べた結果正しいので結果はtrueになります。
同様に、7行目の比較も見てみます。2と1を比べていますが、この比較演算子は右が大きいかという判断をしています。1のほうが2より小さいのでこれは正しくありません。したがってfalseとなります。
最後に10行目では等価演算子を使っている例です。等価演算子は「==」となります。イコールが1つだと代入の意味になってしまうので注意してください。これは左右が等しいのでtrueとなります。
結果を出力すると以下のようになります。
実際にコードに書き起こすとよくわかるね!
比較演算子・等価演算子の一覧
比較演算子と等価演算子をまとめるとこのようになります。
演算子 | 意味 |
== | 左右が等しい |
!= | 左右が等しくない |
> | 左が右より大きい |
>= | 左が右より大きいか等しい |
< | 右が左より大きい |
<= | 右が左より大きいか等しい |
この「!=」の左右が等しくない、ってどういう意味?
左辺と右辺の値が同じだったらfalse、同じじゃなければtrueということだよ!
なるほど、「==」と逆の結果を返すってことね。ややこし~。
論理演算子とは
数学で出てきた「and」や「or」は覚えているかな?
数学は思い出したくないです…。
「かつ」「または」なんて言葉を数学で聞いたことはあるのではないでしょうか。
「かつ」はANDといい、AとBどちらも真ならば真、そうでなければ偽、というものです。
図(ベン図)にするとこんな感じです。
AとBがtrueのときのみ、全体もtrueになるというイメージですね。
では「または」のORの場合です。こちらはAとBどちらか真ならば真、どちらも偽ならば偽、というものです。
こちらもベン図で表すとこのようになります。
AとB両方がtrue、または片方でもtrueの場合は全体もtrueになります。
具体例ぷりーず!
それでは実際にプログラミングして確認してみましょう。
4行目を見てみましょう。「&&」はANDの論理演算子です。左はtrue、右はfalseです。つまり左右どちらもtrueでないので結果はfalseになります。
次に7行目です。「||」はORになります。左はfalse、右はtrueです。片方でもtrueならば真なので、全体の結果はtrueになります。
最後に論理演算子のひとつでもある否定演算子についても触れておきます。10行目では「false」の前に「!(エクスクラメーションマーク)」がついています。これはtrueとfalseを逆転するというものです。falseに否定演算子がついていますので結果はtrueになります。
したがって出力するとこのようになります。
論理演算子の一覧
まとめるとこのようになります。
演算子 | 意味 |
! | (真偽値の前につけて)trueとfalseを逆転させる |
&& | AND(かつ)、両方ともtrueならtrue、そうでなければfalse |
|| | OR(または)、どちらかでもtrueならtrue、そうでなければfalse |
論理演算子を使うことで複雑な条件も判定することができるよ!
Dartで値を比較していこう!
これをまだどこで使うかわかっていないけど、内容はわかった気がするよ!
比較演算子や論理演算子は「条件分岐」というところでよく使うから今のうちに理解しておくといいよ!
よし!これを理解したらDart攻略に一歩進んだことになるね!
■参考文献
コメント