世界最大級のオンライン学習サービス「Udemy(ユーデミー)」とは?

【Flutter/Dart】演算子とは?算術・代入・比較・論理・型テスト・三項演算子

今回はDart言語における「演算子」の概念と使い方について解説していきます。

プログラミング初心者でも理解しやすい内容になっているのでぜひ最後までご覧ください。

目次

プログラミング言語における「演算子」とは?

まずはプログラミング言語における演算子とは何かについて解説していきます。

演算子とはズバリ「プログラミング内で使用する記号」のことです。

プログラミングには算術演算子や比較演算子など様々な演算子が存在し、適切な演算子を使用することでコードをより簡潔にまとめることができます。

Dart言語で使用される主な演算子

Dart言語で使用される主な演算子は次の通りです。

本記事ではそれぞれの演算子の使い方を解説していきます。

演算子の種類記号
算術演算子+, -, *, /, ~/, %
インクリメント演算子/デクリメント演算子++, —
代入演算子+=, -=, *=, /=, ~/=, %=
比較演算子==, !=, >, >=, <, <=
論理演算子||, &&, !
型テスト演算子is, is!, as
三項演算子条件式? a : b, ??

算術演算子

算術演算子とは四則計算(足し算, 引き算, 掛け算, 割り算)や余りの計算など数値の計算を行うための演算子です。

演算子意味
+加算
減算
*乗算
/除算
~/除算(整数値を返す)
%剰余

算術演算子の使用例

void main() {

  //加算
  print(3 + 2); //5

  //減算
  print(3 - 2); //1

  //乗算
  print(3 * 2); //6

  //除算
  print(10 / 3); //3.3333333333333335

  //除算(整数値を返す)
  print(10 ~/ 3); //3

  //剰余
  print(10 % 3); //1
}

インクリメント演算子/デクリメント演算子

int型またはdouble型の変数に対して、インクリメント演算子では「1」を増やし、デクリメント演算子では「1」を減らすことができます。

演算子意味
++インクリメント(対象の変数を1増加)
デクリメント(対象の変数を1減算)

インクリメント演算子/デクリメント演算子の使用例

void main() {

  //インクリメント演算子:++a
  int num = 1;
  print(++num); //2
  print(num); //2

  //インクリメント演算子:a++
  num = 1;
  print(num++); //1
  print(num); //2

  //デクリメント演算子:--a
  num = 1;
  print(--num); //0
  print(num); //0

  //デクリメント演算子:a--
  num = 1;
  print(num--); //1
  print(num); //0
}

++a(前置) と a++(後置)の違い

インクリメント演算子(デクリメント演算子)を変数の前置と後置のどちらに配置するかによって処理のタイミングが異なってきます。

先ほどの使用例のコードで説明すると、++a(前置)の場合はaに1を増加した後でprintの処理を実行し、a++(後置)の場合はprintを実行した後でaに1を増加します。

代入演算子

代入演算子とは変数に値を代入するときに使用する演算子です。

普段から使用している=は最も基本となる代入演算子で、a = a + bのような文は代入演算子+=を使用してa += bのようにコードを簡潔にまとめられます。

記号使用例意味
=a = ba = b
+=a += ba = a + b
-=a -= ba = a – b
*=a *= ba = a * b
/=a /= ba = a / b
~/=a ~/= ba = a ~/b
%=a %= ba = a % b

代入演算子の使用例

void main() {
  int num = 1;

  num += 2;
  print(num); //3

  num *= 3;
  print(num); //9
}

比較演算子

比較演算子とは2つの値を比較して正しいかどうか判断できる演算子です。

2つの値が等しいか比較するには==、大きいかどうか比較するには>=など比較した条件結果が真ならtrue、偽ならfalseを返します。

記号意味使用例結果
==左辺と右辺は同じ5 == 2false
!=左辺と右辺が異なる5 != 2true
>左辺は右辺より大きい5 > 2true
>=左辺は右辺以上5 >= 2true
<左辺は右辺より小さい5 <= 2false
<=左辺は右辺以下5 < 2false

比較演算子の使用例

void main() {
  print(5 == 2); //false
  print(5 != 2); //true
  print(5 > 2); //true
  print(5 >= 2); //true
  print(5 < 2); //false
  print(5 <= 2); //false
}

論理演算子

算術演算子とは四則計算(足し算, 引き算, 掛け算, 割り算)や余りの計算など数値の計算を行うための演算子です。

記号名前(読み方)使用例意味
||論理和(OR/または)a || ba または b が真なら真
&&論理積(AND/かつ)a && ba かつ bが真なら真
!否定(NOT)!aa が偽なら真

論理和の使用例

論理和では左辺または右辺のいずれかの値が真の場合にtrueを返します。

使用例結果
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse
void main() {
  print((2 < 5) || (5 < 2)); //true
  print((10 < 1) || (5 < 2)); //false
}

論理積の使用例

論理積では左辺と右辺の値が共に真ならtrueを返します。

使用例結果
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse
void main() {
  print((2 < 5) && (5 < 2)); //false
  print((10 < 1) && (5 < 2)); //false
}

否定の使用例

!aaが真の場合はfalse、偽の場合はtrueを返します。

使用例結果
!truefalse
!falsetrue
void main() {
  print(!(5 < 2)); //true
  print(!(2 == 2)); //false
}

型テスト演算子

型テスト演算子では対象となる変数が指定した型であるか判断できる演算子です。

記号使用例説明
is値 is 型左辺が右辺で指定した型なら真
is!値 is! 型左辺が右辺で指定した型と異なるなら真
as値 as 型左辺が右辺で指定した型なら処理を実行

型テスト演算子の使用例

void main() {
  String hello = 'Hello World';

  print(hello is String); //true
  print(hello is! String); //false
  print(hello as String); //Hello World
}

三項演算子

三項演算子を使用することでif..else文を1文に簡潔にまとめられます。

使用例説明
条件式? a : b;条件式が真ならaを返す(aの処理を実行)
a ?? baがNullでないならaを返し、Nullならbを返す

三項演算子の使用例

void main() {
  int age = 18;
  print(age >= 18? '成年':'未成年'); //成年

  var a = null;
  var b = 'It is B';
  print(a ?? b); //It is B
}

まとめ

今回はDart言語における「演算子」の基本的な使い方について解説しました。

参考サイト

目次