Dart-运算符、条件表达式、类型转换

242 阅读1分钟
算数运算符(+、-、*、/、~/(取整)、%(取余))
int a=13;
int b=5;

print(a+b);   // 加
print(a-b);   // 减
print(a*b);   // 乘
print(a/b);   // 除
print(a%b);   // 其余
print(a~/b);  // 取整
关系运算符(==、!=、>、<、>=、<=)
int a=5;
int b=3;

print(a==b);   // 判断是否相等
print(a!=b);  // 判断是否不等
print(a>b);   // 判断是否大于
print(a<b);   // 判断是否小于
print(a>=b);  // 判断是否大于等于
print(a<=b);  // 判断是否小于等于
逻辑运算符(!、&&、||)
/* ! 取反 */ 
bool flag = false;
print(!flag);   // 取反

/* && 并且:全部为true的话值为true,否则值为false */ 
bool a = true;
bool b = true;
print(a && b); // 输出true

/* || 或者:全为false的话值为false,否则值为true */ 
bool a = false;
bool b = false;
print(a || b); // 输出false

// 如果一个人的年龄是20并且sex是女的话我们打印这个人
int age = 20;
String sex = "女";
if(age == 20 && sex == "女"){
  print("$age --- $sex");
}else{
  print("不打印");
}

//如果一个人的年龄是20或者sex是女的话我们打印这个人
int age = 23;
String sex = "女";
if(age == 20 || sex == "女"){
  print("$age --- $sex");
}else{
  print("不打印");
}
赋值运算符
基础赋值运算符(=、??=)
int a = 10;
int b = 3;
print(a);
int c = a + b;   // 运算顺序从右向左

b??=23; // 表示如果b为空的话把23赋值给b

int b = 6;
b??=23;
print(b); // b不为空,此处输出6

int b;
b??=23;
print(b); // b为空,此处输出23
复合赋值运算符(+=、-=、*=、/=、%=、~/=)
var a = 12;
a = a + 10;
print(a); // 输出22

var a = 13;
a+=10;   // 表示a=a+10
print(a); // 输出23

var a = 4;
a*=3;  // a=a*3;
print(a); // 输出12
条件表达式
// 1. if  else   switch case 
bool flag = true;
if(flag){
  print('true');
}else{
  print('false');
}

// 判断一个人的成绩如果大于60显示及格,如果大于70显示良好,如果大于90显示优秀
var score = 41;
if(score > 90){
  print('优秀');
}else if(score > 70){
  print('良好');
}else if(score >= 60){
  print('及格');
}else{
  print('不及格');
}

var sex="女";
switch(sex){
  case "男":
    print('性别是男');
  break;
  case "女":
    print('性别是女');
  break;
  default:
    print('传入参数错误');
  break;
}

// 2.三目运算符 
var falg = true;
var c;
if(falg){
  c = "我是true";
}else{
  c = "我是false";
}
print(c);

bool flag = false;
String c = flag ? '我是true' : '我是false';
print(c);

// 3. ??运算符
var a;
var b = a ?? 10;
print(b); // a为空,所以输出10

var a = 22;
var b = a ?? 10; // a有值,所以输出22
print(b);

类型转换
1.Number与String类型之间的转换
// Number类型转换成String类型 toString()
// String类型转成Number类型  int.parse()
String str = '123';
var myNum = int.parse(str);
print(myNum is int); // is用来判断类型

String str = '123.1';
var myNum = double.parse(str);
print(myNum is double); // true

String price = '12';
var myNum = double.parse(price);
print(myNum);
print(myNum is double); // true

// 报错
String price = '';
var myNum = double.parse(price);
print(myNum);
print(myNum is double); 

// try  ... catch
String price='';
try{
  var myNum = double.parse(price);
  print(myNum);
}catch(err){
  print(err);
} 

var myNum = 12;
var str = myNum.toString();
print(str is String); // true
2.其他类型转换成Booleans类型
// isEmpty:判断字符串是否为空
var str = '';
if(str.isEmpty){
  print('str空'); // 执行if
}else{
  print('str不为空');
}

var myNum = 123;
if(myNum == 0){
  print('0');
}else{
  print('非0'); // 执行else
}

var myNum;
if(myNum == 0){
  print('0');
}else{
  print('非0'); // 执行else
}

var myNum;
if(myNum == null){
  print('空'); // 执行if
}else{
  print('非空');
}

var myNum = 0/0;
print(myNum); // 输出NaN
if(myNum.isNaN){
  print('NaN'); 
}