算数运算符
符号 |
介绍 |
示例 |
+ |
相加 |
num1 + num2 |
- |
相减 |
num1 - num2 |
* |
相乘 |
num1 * num2 |
/ |
相除 |
num1 / num2 |
~/ |
相除,返回整数值 |
num1 ~/ num2 |
% |
获取整数除法的余数(取模) |
num1 % num2 |
++ |
增量 |
num1++ |
-- |
减量 |
num2-- |
示例:
var num1 = 101;
var num2 = 2;
var res = 0;
//相加
res = num1 + num2;
print("$num1 + $num2 = $res");
//相减
res = num1 - num2;
print("$num1 - $num2 = $res");
//相乘
res = num1 * num2;
print("$num1 * $num2 = $res");
//相除
double num3 = num1 / num2;
print("$num1 / $num2 = $num3");
//相除,返回整数值
res = num1 ~/ num2;
print("$num1 ~/ $num2 = $res");
//获取整数除法的余数(取模)
res = num1 % num2;
print("$num1 % $num2 = $res");
//增量
num1++;
print("++ = ${num1}");
//减量
num2--;
print("-- = ${num2}");
输出:
101 + 2 = 103
101 - 2 = 99
101 * 2 = 202
101 / 2 = 50.5
101 ~/ 2 = 50
101 % 2 = 1
++ = 102
-- = 1
关系运算符
关联运算符测试或定义两个实体之间的关系类型,关系运算符返回布尔值,即true/false。
假设A=10,B=20。
符号 |
介绍 |
示例 |
> |
大于 |
(A > B)is false |
< |
小于 |
(A < B)is true |
>= |
大于或等于 |
(A >= B)is false |
<= |
小于或等于 |
(A <= B)is true |
== |
相等 |
(A == B) is true |
!= |
不等于 |
(A != B)is true |
示例:
var num1 = 5;
var num2 = 9;
//大于
print("$num1 > $num2 = ${num1 > num2}");
//小于
print("$num1 < $num2 = ${num1 < num2}");
//大于或等于
print("$num1 >= $num2 = ${num1 >= num2}");
//小于或等于
print("$num1 <= $num2 = ${num1 <= num2}");
//相等
print("$num1 == $num2 = ${num1 == num2}");
//不相等
print("$num1 != $num2 = ${num1 != num2}");
输出:
5 > 9 = false
5 < 9 = true
5 >= 9 = false
5 <= 9 = true
5 == 9 = false
5 != 9 = true
类型运算符
这些运算符非常方便在运行时检查类型。
符号 |
介绍 |
is |
确定对象是否具有指定的类型 |
is! |
如果对象具有指定的类型,则为false |
is和is!示例
int num = 10;
print("num is int:${num is int}");
double num1 = 10.3;
print("num1 is! int:${num1 is! int}");
输出:
num is int:true
num1 is! int:true
按位运算符
符号 |
介绍 |
示例 |
& |
位与操作符 |
a & b |
| |
位或操作符 |
a | b |
^ |
位异或操作符 |
a ^ b |
~expression |
取反操作符 |
~a |
<< |
左移操作符 |
a<<2 |
>> |
右移操作符 |
b>>2 |
示例:采用二进制演示
var num1 = 2;
print("num1的二进制:${num1.toRadixString(2)}");
var num2 = 3;
print("num2的二进制:${num2.toRadixString(2)}");
print("=============================");
// & 运算符 采用二进制 相同位位置的值都为1结果值则返回1 不同结果值则返回0
var res = num1 & num2;
/*
num1 0010
num2 0011
res 0010
*/
print("$num1 & $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// | 运算符 相同位位置的值只要为1结果值则为1,其他的结果值则为0
res = num1 | num2;
/*
num1 0010
num2 0011
res 0011
*/
print("$num1 | $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// ^ 运算符 相同位置相同结果值为0,不同结果值为1
res = num1 ^ num2;
/*
num1 0010
num2 0011
res 0001
*/
print("$num1 ^ $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// ~ 运算符 如果位为0 结果值为1,如果位为1 结果值是0
res = ~num2;
/*
num2 0011
res - 0100
*/
print("~ $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// << 运算符 将二进制表示形式的num1向左移动num2位,从右侧向右移动零。
res = num1 << num2;
/*
num1 0010
res 0001 0000
*/
print("$num1 << $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// >> 运算符 将二进制表示形式的num1向右移num2位,丢弃移开的位。
res = num1 >> num2;
/*
num1 0010
res 0000
*/
print("$num1 >> $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
输出:
num1的二进制:10
num2的二进制:11
=============================
2 & 3 = 2
结果的二进制:10
=============================
2 | 3 = 3
结果的二进制:11
=============================
2 ^ 3 = 1
结果的二进制:1
=============================
~ 3 = -4
结果的二进制:-100
=============================
2 << 3 = 16
结果的二进制:10000
=============================
2 >> 3 = 0
结果的二进制:0
逻辑运算符
逻辑运算符用于组合两个或多个条件。逻辑运算符返回布尔值。假设变量A=10,而B=20。
符号 |
简介 |
例子 |
&& |
仅当所有指定的表达式均返回true时,运算符才返回true |
(A > 10 && B > 10) is False. |
|| |
如果指定的至少一个表达式返回true,则运算符返回true |
(A > 10 ||B>10) isTrue. |
! |
运算符返回表达式结果的倒数。 例如:!(7>5)返回false |
!(A>10) is True. |
示例:
var num1 = 10;
var num2 = 14;
// && 只有两个都是true的时候才返回true,否则为false。
// true false 结果为 false
var res = (num1 < num2) && (num1 > 20);
print(res);
// ||至少有一个表达式返回true,运算符返回true
// false false 结果为 false
res = (num1 > num2) || (num2 < 10);
print(res);
// !表达式为true的时候 运算符返回false
// false 结果为 true
res = !(num1 > num2);
print(res);
输出:
false
false
true
三元运算符
如果 expr1 不为null,则返回其值;否则返回expr2
示例:
var num = 10;
var resData = num > 20 "大于" : "小于";
print(resData);
var a = null;
var b = 10;
var resData1 = a ?b;
print(resData1);
输出:
小于
10