dart语言第四章简单入门

Dart语言第四章简单入门

一.各类逻辑运算符

描述运算符
一元后缀expr++expr–()[].
一元前缀-expr!expr~expr++expr–expr
乘法*** 、 /%~/
加法+-
移位<<>>
按位与&
按位或|
关系和类型判断>=><=<asisis!
相等==!=
逻辑与&&
逻辑或||
条件式expr1 ? expr2 : expr3
级联
赋值==/=~/=%=+=-=<<=>>=&=^= 、 |=

以上是dart语言的运算符展示表,其中有我们常用的数学运算符,也有计算机语言相通提供的逻辑运算符。我们重点了解一下其中不常用或是大家不熟悉的几种表达式:

1.一元后缀与一元前缀:

expr++与expr–,其中的expr我们可以看作一个数值的表示,没有什么其他的含义。你可以把他理解为a++和a–,那么他们的区别和含义在哪里呢?

粗略的说:

  • a++是当前值计算表达式,然后将变量a的值+1;
  • 而++a是先将a的值+1,然后使用新的值来计算表达式。

从结果的角度来看,他们两者并无区别,但是在程序运行中,牵扯到程序执行的效率

  • 前缀运算符:(程序员自定义)将值+1,然后返回结果;
  • 后缀运算符:首先复制一个副本,将其值+1,然后将复制的副本返回;

如果把一个占用内存较大的类作为循环量对其使用递增(递减)运算符时,我们就应当使用前缀运算符++a(–a)

2.条件式:

expr1 ? expr2 : expr3

这个是条件表达式,表示如果expr1为真,则表达式值为expr2,如果a为假,则表达式值为expr3

举个例子:

条件语句:
if(a>b) max=a;
else max=b;
可用条件表达式写为
max=(a>b)?a:b;

执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max.
使用条件表达式时,还应注意以下几点:

  1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符.
    因此
    max=(a>b)?a:b
    可以去掉括号而写为
    max=a>b?a:b

  2. 条件运算符?和:是一对运算符,不能分开单独使用.

  3. 条件运算符的结合方向是自右至左.
    例如:
    a>b?a:c>d?c:d
    应理解为
    a>b?a:(c>d?c:d)

3.级联

后面再填坑,目前不好解释

二.数学运算符

运算符意义
+加法
-减法
-expr取反,或称否定(反向表达式)
*乘法
/除法
~/整除
%模运算,取整除后的余

数学运算,不做过多解释。

assert函数:

可理解为判定函数,如果它的条件返回错误,则终止程序执行

实例:

main() {
  assert(2 + 3 == 5);
  assert(2 - 3 == -1);
  assert(2 * 3 == 6);
  assert(5 / 2 == 2.5);
  assert(5 ~/ 2 == 2);
  assert(5 % 2 == 1);
}

这是运算正确的情况,程序可以正常输出

main() {
  assert(2 + 3 == 4);//此处进行了修改2+3==4了
  assert(2 - 3 == -1);
  assert(2 * 3 == 6);
  assert(5 / 2 == 2.5);
  assert(5 ~/ 2 == 2);
  assert(5 % 2 == 1);
}

程序输出异常:Failed assertion: line 2 pos 10: ‘2 + 3 == 4’: is not true.

我们可利用assert函数来进行判错

三.相等与关系运算符

运算符意义
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于
assert(2 == 2);
assert(2 != 3);
assert(3 > 2);
assert(2 < 3);
assert(3 >= 3);
assert(2 <= 3);

四.流程控制语句

流程控制语句注意分5类,现在我们逐个介绍:

1.if和else

if和else是最常用的流程控制语句,我们来举例说明:

main() {
  String today = 'Monday';
  if (today == 'Monday') {
    print('周一');
  } else if (today == 'Tuesday') {
    print('周二');
  } else {
    print('周末');
  }
}//输出周一

另一种情况:

main() {
  String today = 'Tuesday';
  if (today == 'Monday') {
    print('周一');
  } else if (today == 'Tuesday') {
    print('周二');
  } else {
    print('周末');
  }
}//输出周二

2.for循环

下面是一个简单的for循环

main() {
  for (var i = 0; i < 5; i++) {
    print('哈');
  }
} //输出: 哈
      //  哈
     //   哈
     //   哈
     //   哈

由循环体及循环的判定条件两部分组成,其表达式为:

for(单次表达式;条件表达式;末尾循环体){

中间循环体

}

​ 循环的单次表达式可作为某一变量的初始化赋值语句,用来给循环控制变量赋初值, 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。,条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。

3.while循环

以下是一个简单的while循环:

main() {
  var temp = 0;
  while (temp < 5) {
    print("太极马保国");
    temp++;
      //break;
  }
}
//输出:太极马保国
     //太极马保国
     //太极马保国
     //太极马保国
     //太极马保国


while循环里while旁边括号内为循环执行条件,不满足条件时循环停止

任何一种循环都可以用break;打断循环

4.switch选择结构

main() {
  String today = 'Monday';
  switch (today) {
    case 'Monday':
      print('周一');
      break;
    case 'Tuesday':
      print('周二');
      break;
  }
}//周一

main() {
  String today = 'Tuesday';
  switch (today) {
    case 'Monday':
      print('周一');
      break;
    case 'Tuesday':
      print('周二');
      break;
  }
}//周二

满足case条件后将执行此分支结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值