接下来继续我们的Dart入门学习,上一篇给大家介绍了Dart中的变量,常量以及数据类型,相信小伙伴们都学会了,今天我给大家介绍一下Dart中的运算符及条件表达式相关知识,如果你还没看过上一篇的文章,我还是希望你能先去看看,当然我指的是那些没有任何经验的小伙伴,因为只有这样,你才能更好的理解学习接下来的知识。下面是上篇文章的地址,好了,开始今天的介绍吧。
所谓算术运算符,就相当于我们数学当中加,减,乘,除,取余,取整等等,在程序语言中又基本增加自增,自减等。下面直接上代码讲解,这样比较易懂。
void main(){
//算术运算符
int a = 10;
int b = 5;
print(a + b);
print(b - a);
print(a * b);//乘法
print(a / b);
print(a ~/ b);//运算符(~/)为取除法结果的整数部分,这里结果为2
print(a % b);//运算符(%)为取除法结果的余数,这里结果为0
/**
*运算符(++),本意为自增
*当++在操作元素后(a++)时,先执行a本身,后执行++即自增,所以打印结果为a,打印完后a+1
*当++在操作元素前(++a)时,先执行++,再执行后续操作,所以打印结果为a+1
*/
print(a++);//由上面注释所知这时先打印a,所以结果为10,随后会进行自增,也就是接下来a会为11
print(++a);//由上面所得,a这个时候已经是11了,随后在打印之前会自增,所以结果为12
/**
*运算符(--),本意为自减
*当--在操作元素后(a--)时,先执行a本身,后执行--即自减,所以打印结果为a,打印完后a-1
*当--在操作元素前(--a)时,先执行--,再执行后续操作,所以打印结果为a-1
*/
print(a--);//由上面注释所知这时先打印a,所以结果为12,随后会进行自减,也就是接下来a会为11
print(--a);//由上面所得,a这个时候已经是11了,随后在打印之前会自减,所以结果为10
}
上面比较容易犯错的时候是自增(++),自减(--)操作,我的注释已经比较详细了,希望小伙伴自己多去练练就没啥问题了。
所谓赋值就是给一个变量或者常量赋值,整体而言Dart中的赋值运算符和其他语言没有太多区别,下面还是以代码示例讲解吧!
//赋值运算符示例
void main(){
int a = 10;
int b = 5;
b ??= a; //??= 表示被赋值变量如为空则被赋值,反之则保持当前值。
print(b);//所以这里b还是原始值5
/*
*其实(a += 2)表达式就相当于a = a + 2,你可以简写成前面那样,对于小白你要知道的是
*在程序设计语言中表达式都是从右到左赋值的,所以这里打印的结果a为12
*/
a += 2;
print(a);
a -= 2;
print(a);//这里和上面也是一样的,就相当于a = a - 2,所以结果为10(程序是从上往下执行)
a *= b;
print(a);//相当于a = a * b,结果是50
//a /= b;
a ~/= b; //相当于a = a ~/ b,结果是10
print(a);
a %= b; //相当于a = a % b,结果为0
print(a);
}
所谓逻辑运算结果只有true和false,所以逻辑运算符的操作元素一定要为bool值,与其他语言没有区别,下面上代码给大家看看!
void main(){
//逻辑运算符示例
bool isTrue = true;
print(!isTrue);//运算符(!)表示取反,所以这里结果为false
bool isFalse = false;
//运算符(&&)为短路与,在运算符前的结果为true时才会执行后面的操作,否则整个表达式执行完.
//它需要前后都为true,结果才为true,否则就是false
print(isTrue && isFalse);//所以这里结果为false
//运算符(||)为短路或,前后只需有一个true,结果则为true,否则就是false。
print(isTrue || isFalse);//所以这里结果为true
}
所谓关系运算就是操作元素之间比较大小,相等这些,这个和其他语言也基本相同,下面还是用代码来讲解吧!
void main() {
//关系运算符
int a = 1;
int b = 4;
print(a == b);
print(a != b);
print(a >= b);
print(a <= b);
print(a > b);
print(a < b);
String str1 = '123';
String str2 = '123';
//和Java等语言不同的是,Dart中比较两个变量是否相等统一用(==)运算符,包括string类型的也是这样
//这算是Dart的特点之一吧,所以下面结果为true
print(str1==str2);
}
Dart中条件表达式和其他语言有相似之处,也有不同的地方,下面继续使用代码示例和大家介绍
//条件表达式示例
void main(){
int gender = 1;
String a = 'james';
String b = 'kobe';
/**
*下面这个表达式称之为三目运算符表达式,结构为(表达式)?(表达式或者变量):(表达式或者变量)
*?前必须是boolean类型的结果,如果结果为true则把:前面的表达式或者变量赋值给Str
*如果结果是false则把:后面的表达式或者变量赋值给Str
*/
String str = gender == 0 ? 'male=$a':'female=$b';
print(str);//根据上面注释所得结果为female=kobe
String c = a ?? b; //当??前的变量或表达式不为空时,结果为这个变量或表达式的值,反之为后面的变量
或表达式的值.
print(c);//所以这里打印结果为james
}
好了,今天要介绍的运算符及条件表达式就先介绍这些了,也算是入门了一下,后续我将会继续深入介绍Dart的基本知识的,希望大家继续关注,一起加油哦!对了,我在下面给出上面代码示例的git地址供大家参考学习。
https://github.com/OMGyan/dart_study/tree/master/chapter3
以上!!!