Flutter学习之路(五)-Dart运算符 条件表达式 类型转换

Dart运算符:

算术运算符

+ - * / ~/ (取整) %(取余)

void main(){
  int a = 13;
  int b = 5;

  print(a + b);   //加 18
  print(a - b);   //减 8
  print(a * b);   //乘 65
  print(a / b);   //除 2.6
  print(a % b);   //取余 3
  print(a ~/ b);  //取整 2

  var c = a * b; // 赋值结果给 c
  print('--------');
  print(c); // 65
}
关系运算符

== != > < >= <= 返回 true 或者 false

void main(){
  int a = 5;
  int b = 3;

  print(a == b);   //判断是否相等
  print(a != b);   //判断是否不等
  print(a > b);   //判断是否大于
  print(a < b);   //判断是否小于
  print(a >= b);   //判断是否大于等于
  print(a <= b);   //判断是否小于等于
  
  // 用于条件判断
  if (a > b) {
    print('a大于b');
  } else {
    print('a小于b');
  }
}
逻辑运算符

! && ||

void main(){
  /* ! 取反 */ 
  bool flag = false;
  print(!flag);   // 取反 true

 /* && 并且:全部为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("不打印");
  }
}
赋值运算符
  1. 基础赋值运算符
    = ??=
void main(){
    int a = 10;
    int b = 3;
    print(a);
    
    int c = a + b;   // 从右向左

    b ??= 23;  // 表示如果b为空的话 把23赋值给b
    int b = 6;
    b ??= 23;
    print(b); // 6
          
    int b;
    b ??= 23;
    print(b); // 23
}
  1. 复合赋值运算符
    += -= *= /= %= ~/=
var a = 12;
a = a+10;
print(a);

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

var a = 4;
a *= 3;  // a = a * 3;
print(a);

条件表达式

if else switch case
void main(){
   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('性别是女');
      print('性别是女');
    break;
    default:
      print('传入参数错误');
    break;
  }     
}
三目运算符
var falg = true;
var c;
if (falg) {
  c='我是true';
} else {
  c="我是false";
}
print(c);

bool flag = false;
String c = flag ? '我是true' : '我是false';
print(c);
??运算符
var a;
var b = a ?? 10;
print(b);  // 10

var a = 22;
var b = a ?? 10;
print(b); // 22

类型转换

  1. Number与String类型之间的转换 - toString()
void main(){
   var myNum = 12;
   var str = myNum.toString();
   print(str is String);
}
  1. String类型转成Number类型 parse()
  String str = '123';
  var myNum = int.parse(str);
  print(myNum is int); // true


  String str = '123.1'; // 浮点型
  // var myNum = int.parse(price); 报错
  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(0);
  }
  1. 其他类型转换成Booleans类型
// isEmpty:判断字符串是否为空
  var str = '';
  if (str.isEmpty) {
    print('str空');
  } else {
    print('str不为空');
  }

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

  if(myNum == 0) {
    print('0');
  }else{
    print('非0');
  }

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

   var myNum = 0/0;   
   print(myNum); // 不会报错,返回 NaN
   if(myNum.isNaN){
     print('NaN');
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值