今回は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 = b | a = b |
+= | a += b | a = a + b |
-= | a -= b | a = a – b |
*= | a *= b | a = a * b |
/= | a /= b | a = a / b |
~/= | a ~/= b | a = a ~/b |
%= | a %= b | a = a % b |
代入演算子の使用例
void main() {
int num = 1;
num += 2;
print(num); //3
num *= 3;
print(num); //9
}
比較演算子
比較演算子とは2つの値を比較して正しいかどうか判断できる演算子です。
2つの値が等しいか比較するには==
、大きいかどうか比較するには>=
など比較した条件結果が真ならtrue、偽ならfalseを返します。
記号 | 意味 | 使用例 | 結果 |
---|---|---|---|
== | 左辺と右辺は同じ | 5 == 2 | false |
!= | 左辺と右辺が異なる | 5 != 2 | true |
> | 左辺は右辺より大きい | 5 > 2 | true |
>= | 左辺は右辺以上 | 5 >= 2 | true |
< | 左辺は右辺より小さい | 5 <= 2 | false |
<= | 左辺は右辺以下 | 5 < 2 | false |
比較演算子の使用例
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 || b | a または b が真なら真 |
&& | 論理積(AND/かつ) | a && b | a かつ bが真なら真 |
! | 否定(NOT) | !a | a が偽なら真 |
論理和の使用例
論理和では左辺または右辺のいずれかの値が真の場合にtrueを返します。
使用例 | 結果 |
---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
void main() {
print((2 < 5) || (5 < 2)); //true
print((10 < 1) || (5 < 2)); //false
}
論理積の使用例
論理積では左辺と右辺の値が共に真ならtrueを返します。
使用例 | 結果 |
---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
void main() {
print((2 < 5) && (5 < 2)); //false
print((10 < 1) && (5 < 2)); //false
}
否定の使用例
!a
のa
が真の場合はfalse、偽の場合はtrueを返します。
使用例 | 結果 |
---|---|
!true | false |
!false | true |
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 ?? b | aが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言語における「演算子」の基本的な使い方について解説しました。