不讲理论,代码实践

一、+ - * / 等基本运算

double a = 2.3;
double b = 2;
print(a + b); // 4.3
print(a - b); // 0.2999999999999998
print(2 - 1); // 1
print(a - 1.0); // 1.2999999999999998
print(a * b); // 4.6
print(a / b); // 1.15
print(a % b);  // 求余  0.2999999999999998
print(a ~/ b); // 取整  1
print(a == b); // 相等  false
print(a != b); // true
print(a >= b); // true
print(a <= b); // false
print(a > b); // true
print(a < b); // false

输出结果:

1.jpg

二、取反

String name = 'ptbird';
bool flag1 = true;
bool flag2 = false;
// if(!name) {}
print(!!!flag1); // false
if (flag1 && flag2) {
  print(' && ');
}  else if (flag1 || flag2) {
  print(' || ');
}

输出结果:

2.jpg

三、赋值运算

int num;
num ??= 3;
num ??= 1;
print(num);
double num2 = 1;
num2 += 2;
print(num2);
num2 -= 2;
print(num2);
num2 *= 2;
print(num2);
num2 /= 2;
print(num2);

四、条件表达式

int num = 2;
if(num > 2) {
  print('num > 2');
}else if(num <=2) {
  print('num <=2');
}
switch(num) {
  case 1 : print('num == 1'); break;
  case 2 : print('num == 2'); break;
  case 3 : print('num == 3'); break;
  default: print('no');
}

输出结果:

3.jpg

五、三目运算符 和 ?? 运算符

?? 运算符可以赋值默认值,类似 js 的 a || 1 表达式

int num = 1;
print('num is ${num == 1 ? '一' : num == 2 ? '二' : 'ohter'}');

// ?? 运算符
int num1;
int num2 = 123;
num1 = num1 ?? 1;
print(num1);
num1 = num2 ?? 1;
print(num1);

输出结果:

4.jpg

六、基本类型转换

String str1= 'name';
String str2 = '123';
int num1 = 1;
double num2 = 2.2;
// int res1 = int.parse(str1); // err
int res2 = int.parse(str2);
print(res2);
double res3 = double.parse(str2);
print(res3);
// res2 = int.parse(num1); // err
print(num2.toString());
if(str1.isEmpty) {
  print('str1 is not empty');
}
num2 = num2 / 0;
if(num2.isNaN) {
  print('num2 is Nan');
}

输出结果:

5.jpg

七、for 循环遍历

1、基本使用

  for(int i = 0; i< 10; i++) {
    if(i % 2 == 0) {
      print(i);
    }
  }

输出结果:

6.jpg

计算从 1 -> n 的和

  int num1 = 0;
  for(int i=1; i<=100; i++) {
    num1 += i;
  }
  print('num1 = ${num1}');

输出结果:

num1 = 5050

计算 n 的阶乘:

num2 = 3628800

2、List 的遍历

 List l1 = ['a', 'b', 'c', 'd'];
  for(int i=0; i<l1.length; i++) {
    print('now is ${i} -- ${l1[i]}');
  }

输出结果:

7.jpg

  List l2 = [{'title': 't1'},{'title': 't2'},{'title': 't3'},{'title': 't4'},];
  for(int i=0; i<l2.length; i++) {
    print('title is ${l2[i]['title']}');
  }

8.jpg

3、嵌套循环

  List l3 = new List();
  List l4 = [{'title': 't1'},{'title': 't2'},{'title': 't3'},];
  l3.add(l4);
  l3.add(l4);
  for(int i=0; i<l3.length; i++) {
    print('第${i}次');
    print('------');
    for(int j=0; j<l3[i].length; j++) {
      print('title is ${l3[i][j]['title']}');
    }
  }

输出结果:

9.jpg

4、while 循环

  int num1 = 10;
  while(num1 >= 1) {
    print(num1);
    num1 -=1 ;
  }

输出结果:

10.jpg

5、 do while 循环

  do{
    print(num1);
    num1 -=1;
  } while( num1 >=1 );

11.jpg

6、break 和 continue

  for(int i=0;i<10;i++) {
    if(i % 2 == 0) {
      continue;
    }
    if(i > 5) {
      break;
    }
    print(i);
  }

输出结果:

12.jpg