流程控制语句

流程控制语句的作用就是控制代码的执行流程。

if and else

var a = 10;
if(a > 10){
print('ok');
}else if( 5 < a <=10 ){
print('soso');
}else{
print('not ok');
}

for循环

var list = [];
for(int i = 0; i<10; i++){
list.add(i);
} list.forEach((item) => print(item)); for (var item in list) {
print(item);
}

三种循环方式,写起来有一种在写java代码的感觉,不得不说,为了google为了照顾广大的android程序员确实在dart的语法上特别亲和。

while and do-while

int a = 3;
while(a > 0){
print(a);
a--;
} do{
print(a);
a--;
}while(a > 0);

区别就是do-while会先执行一次。

break and continue

for(int a = 0; a < 9 ;a ++){
if(a == 3){
break;
}
print(a);
} for(int a = 0; a < 9 ;a ++){
if(a == 3){
continue;
}
print(a);
}

break 是到达条件的时候循环就不执行了,continue是到达条件的时候本次不执行,下次执行。

switch and case

var type = 2;
switch(type){
case 1:
print('top');
break;
case 2:
print('2th');
break;
default:
print('default');
}

需要注意java中如果条件后不加break,很可能会造成switch的case穿透。但是在dart中不会,因为如果不写break,运行就会报错。在Dart中,Switch的case条件下,要么执行语句和break都写,要么都不写,违反规则,dart会让程序直接报错。

断言

assert会在运行时判断条件是否成立,如果条件不成立,会抛出异常。

assert( a > 10);

异常

throw

Dart中允许抛出异常,异常有两种,Error,Exception,但是使用 throw 抛出异常的时候,不限于这两种异常及其子类,你甚至可以直接抛出一个对象。和Java不同,dart中是非检查异常,而且,它没有throws这个关键字,不能用throws在方法上直接抛异常。

throw new  FormatException('Expected at least 1 section');

throw 'this is a Exception';

catch

捕获异常,进行处理

try{
method();
}on Exception catch (e){
print(e);
}

finally

如果要保证捕获到异常后仍然要执行后续代码,使用finally

try{
method();
}on Exception catch (e){
print(e);
}finally{
print('finally');
}

Dart Learn Notes 04的更多相关文章

  1. Dart Learn Notes 03

    操作符 dart 有一套自己定义的操作符: 这里我就不再写了,直接copy一份官网的. 如果有过编程基础,上边展示的操作符应该都不陌生. 算术运算符 加: + 减: - 乘: * 除: / 取余: % ...

  2. Dart Learn Notes 02

    Functions Dart是一门面向对象的语言,所以即便是方法也是一个对象,它的类型是Function. 这就意味着方法可以指向变量,也可以作为方法中的参数供其他方法使用.甚至可以让 一个类作为一个 ...

  3. Dart Learn Notes 01

    关于Dart的几点重要说明 在Dart中所有变量都是一个对象,所有对象都是一个类的实例.每个数字,方法,甚至是Null都是对象.所有的对吸纳更都是集成自Object这个类.(这个说法其实是很像Java ...

  4. Java 8 Learn Notes

    Main reference: [1] http://winterbe.com/posts/2014/03/16/java-8-tutorial/ [2] https://plus.google.co ...

  5. Linux Academy Learn Notes

    Linux Essentials Certification Globbing ls ?.txt --- ? stands for one character while * means one or ...

  6. Bash Scripting Learn Notes

    References: [1] http://www.tldp.org/LDP/Bash-Beginners-Guide/html/ 1. Executing programs from a scri ...

  7. Java 8 Learn Notes - Streams

    Main reference [1] http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples 1. How Stream ...

  8. R Language Learn Notes

    One #install package install.packages("ggplot2") #load library library(ggplot2) #update.pa ...

  9. Ubuntu Intel显卡驱动安装 (Ubuntu 14.04--Ubuntu 16.10 + Intel® Graphics Update Tool)

    最近使用在使用Ubuntu时,发现大部分情况下,不安装显卡驱动,使用默认驱动,都是没有问题的,但对于一些比较奇特配置的电脑,如下所示,如果使用默认驱动,会时常莫名其妙死机crash,尤其是在使用Ope ...

随机推荐

  1. 追查Could not get a databaseId from dataSource

    Mybatis 创建连接池的时候报错: ERROR 2017-03-15 00:44:50,333 commons.JakartaCommonsLoggingImpl:38 Could not get ...

  2. Spring Boot2 系列教程(十九)Spring Boot 整合 JdbcTemplate

    在 Java 领域,数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate .有 MyBatis,还有 JPA,在这些方案中,最简单的就是 Spring 自带的 JdbcTem ...

  3. web.xml 配置文件 超详细说明!!!

    一.web.xml是什么? 首先 web.xml 是java web 项目的一个重要的配置文件,但是web.xml文件并不是Java web工程必须的. web.xml文件是用来配置:欢迎页.serv ...

  4. 在虚拟机上的关于Apache(阿帕奇)(4)基于域名访问网站

    这篇随笔是基于域名访问网站,和前后两篇文章基于ip和基于端口一起练习效果更好 首先配置网卡Ip地址与hosts文件 输入命令:  vi  /etc/hosts/ (每行只能写一条,格式为IP地址+空格 ...

  5. 基础练习1——ls的实现与递归

    学习贵在坚持,兜兜转转,发现还是从基础做起吧,打好基础,才会长期的坚持下去... 第一个练习:shell命令 “ls"的实现与递归 1.简介:ls 的作用是列举当前目录下所有的目录和文件. ...

  6. [考试反思]1017csp-s模拟测试77(lrd day1) :反抗

    说在前面:强烈谴责AK神Mr_zkt没有丝毫素质RP-- 然而我也想没素质一次,但是我没机会AK一套除了B组题以外的题... 太菜了,没权力.人家AK了人家就是牛逼你没话说 达哥的题必须好好写反思. ...

  7. [考试反思]0924csp-s模拟测试51:破碎

    总参赛人数:15 有点菜. 不知道是撞了什么大运没有滚出A层. 但是一回到A层就暴露出了一个大问题:码速. 不是调试速度,,就是纯粹码的速度... 边讲考试状态边说吧... 上来肝T1.一看,是个换根 ...

  8. 水管局长数据加强版:lct,时光倒流,最小生成树,边化点

    Description: SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到 ...

  9. CSP-S模拟57

    这次的T1是来送温暖的. T2T3挺神的. T1. 不会 T2. 容斥,挺神的 T3. 考场上被卡常卡掉10分让我很难受.....(虽然说$O(n)$过$1e8$本来就不太行) 考场上:疯狂化简式子, ...

  10. LINQ学习——JOIN

    一.JOIN的作用 1.使用联接来结合两个或更多的集合的数据. 2.联接操作接受两个集合然后创建一个临时的对象集合,每一个对象包含原始集合对象中的所有字段. Note:这里是包含而不是这个原实集合的字 ...