一、条件语句:if、if...elseif、if...elseif...else

  int score = 95;
if (score >=90) {
print('优秀');
} else if (80>=score && score<90) {
print('良');
} else if (60>=score && score<80) {
print('及格');
} else {
print('不及格');
} //优秀

二、循环语句:for、for in

 
  //使用for循环
var list = [4,2,3];
for(var i=0; i<list.length; i++) {
print(list[i]);
}
//使用forin循环
for (var item in list) {
print(item);
}
/*
4
2
3
*/

三、循环语句:while循环、do...while循环

    //while 先判断条件在执行
int i = 0;
while (i < 2) {
print(i++);
};
/*
0,
1
*/
//do...while 先执行一次在判断条件,至少执行一次
do {
print(i--);
} while (i > 0 && i < 3); /*
0,
1
*/

三、终止当前循环:break 终止离break最近的循环,只能终止一层循环

  //当i==2时候已经终止循环了
for (var i = 0; i < 4; i++) {
if (i == 2) {
break;
}
print(i);
}
/*
0,
1
*/ //break终止的只是当前循环,只能终止一层循环
for (var i = 0; i < 2; i++) {
for (var j = 0; j < 4; j++) {
if (j == 1) {
break;
}
print('[$i,$j]');
};
};
/*
[0,0]
[1,0]
*/

四、跳出当前循环:continue 跳出当前循环,只能跳出一层循环

  //当i==2时候已经跳出循环,执行下一次循环
for (var i = 0; i < 4; i++) {
if (i == 2) {
continue;
}
print(i);
}
/*
0,
1,
3
*/ //contiue跳出的只是当前循环,只能跳出一层循环
for (var i = 0; i < 2; i++) {
for (var j = 0; j < 4; j++) {
if (j == 1) {
continue;
}
print('[$i,$j]');
};
};
/*
[0,0]
[0,2]
[0,3]
[1,0]
[1,2]
[1,3]
*/

五、switch...case语句

  1. 比较类型可以有:num、String、编译期常量、对象、枚举

  2. 非空case必须有一个默认情况

  3. default 处理默认情况

  4. continue 跳转标签

  //language 也可以是num、String、编译期常量、对象、枚举这几种类型
String language = 'java';
switch(language) {
case 'dart':
print('dart language');
break;
case 'java':
print('java language');
break;
case 'python':
print('python language');
break;
default:
print('none');
} //java language /*
用continue跳转到位置执行最近的case
TopTest名字可以随便起
*/
switch(language) { case 'dart':
print('dart language');
break;
case 'java':
print('java language');
continue TopTest
//break;
case 'python':
print('python language');
break;
TopTest:
default:
print('none');
}
/*
java language
none
*/

六、assert 中断代码流

Dart语言通过使用assert语句来中断正常的执行流程,当assert判断的条件为false时,发生中断,assert判断的条件时任何可以转化为boolean类型的对象,即使是函数也可以,如果assert的判断为true,则继续执行下面的语句;

  1. 如果一个布尔条件值为false,使用assert语句来中断正常执行的代码

  2. Assert语句仅仅只能在调试模式下使用,在生产模式下没有任何作用。

  3. 在assert语句后面的括号中,你可以加入任何表示布尔值或者函数的表达式。

  4. 如果表达式的值或者函数返回值true,则assert语句成功并继续执行代码。如果值为false,则assert语句失败并抛出一个异常。

  //确保这个变量不为空值.
assert(text != null); //确保这个变量小于100.
assert(number < ); //确保它是一个https协议类型的URL.
assert(urlString.startsWith(‘https’));
Dart学习系列文章:https://www.cnblogs.com/jukaiit/category/1636484.html

Dart语言学习(十) Dart流程控制语句的更多相关文章

  1. Dart语言学习(六) Dart 列表List数组

    创建List : var list = [1,2,3,"Dart",true]; 创建不可变List : var list = const [1,2,3,"Dart&qu ...

  2. Dart语言学习(十二) Dart面向对象

    Dart作为一种高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式. 基于mixin的继承方式是指:一个类可以继承自多个父类,相当于其他语言里的多继承. 所有的类都有同一个基类Obje ...

  3. Dart语言学习(十五) Dart函数方法

    Dart函数方法可分为两类: 一.内置方法/函数: print(); 二.自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; } vo ...

  4. Dart语言学习(十四) Dart泛型

    什么是泛型? 通俗理解:泛型就是解决 类 接口 方法的复用性.以及对不特定数据类型的支持(类型校验) 如下代码,只能返回string类型的数据 String getData(String value) ...

  5. Dart语言学习(五)Dart Bool类型

    Dart Bool类型和其他语言类似,比较简单 其特点有: 1.使用 bool 表示布尔类型 2.布尔值只有 true 和 false 3.布尔类型bool默认值是null bool isTrue = ...

  6. Dart语言学习(二) Dart的常量和变量

    1.使用var声明变量,可赋予不同类型的值 Dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推导 Dart中定义变量可以通过var关键字可以通过类型来申明变量 var str='t ...

  7. Dart语言学习(七)Dart Map类型

    映射(Maps)是无序的键值对: 常用属性: keys 获取所有的key值 values 获取所有的value值 isEmpty 是否为空 isNotEmpty 是否不为空 常用方法: remove( ...

  8. Dart语言学习(四)Dart字符串

    一.字符串的创建 使用 单引号,双引号 创建字符串 使用 三个引号或双引号 创建多行字符串 使用 r 创建原始 raw 字符串 String str1 = 'Hello';//"" ...

  9. Dart语言学习(三)Dart数值型

    一.类型 数值型有 num,int, double  num a = ; a = 12.5; print(a); print(a.runtimeType); ; // b = 20.5; print( ...

随机推荐

  1. 第二十四篇 玩转数据结构——队列(Queue)

          1.. 队列基础 队列也是一种线性结构: 相比数组,队列所对应的操作数是队列的子集: 队列只允许从一端(队尾)添加元素,从另一端(队首)取出元素: 队列的形象化描述如下图: 队列是一种先进 ...

  2. opencv:边缘保留滤波

    EPF滤波概述 均值与滤波的缺点:并没有考虑中心像素点对整个输出像素的贡献,实际上锚定的那个点贡献应该是最大的 高斯滤波的缺点:当边缘值梯度很大的时候,应减少中心像素点的权重,而高斯滤波没有考虑 边缘 ...

  3. opencv:图像噪声

    常见噪声的类型: 椒盐噪声 高斯噪声 其他噪声...... 手动生成图像噪声: #include <opencv2/opencv.hpp> #include <iostream> ...

  4. python+matplotlib制作雷达图3例分析和pandas读取csv操作

    1.例一 图1 代码1 #第1步:导出模块 import numpy as np import matplotlib.pyplot as plt from matplotlib import font ...

  5. 题解【洛谷P5019】[NOIP2018]铺设道路

    题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...

  6. 【原】接口mock作用

    1.前后端 接口定义完成 并发开工 2.测试拿到mock接口 编写用例 3.mock接口 模拟异常服务器返回值 500 404 4.mock接口 模拟数据 不修改线上数据库

  7. Yii2中事务的使用

    官方是这样的 // $connection其实是数据库连接$transaction = $connection->beginTransaction(); try { $connection-&g ...

  8. maven版axis2调用cxf服务端开发客户端(三)

    一.新建一个maven项目 二.pom.xml引入axis2依赖 <dependency> <groupId>org.apache.axis2</groupId> ...

  9. 《爬虫学习》(三)(requests库使用)

    requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 “HTTP for Human ...

  10. 如何处理 Web 图片优化?

    未优化的图片是影响网站性能的主要因素之一,尤其会影响初次加载.取决于图像的分辨率和画质,图片可能占据整个网站流量的 70%. 生产环境出现未优化的图片并显著影响初次加载速度的现象还是挺常见的.缺乏经验 ...