Flutter学习笔记(6)--Dart流程控制语句
如需转载,请注明出处:Flutter学习笔记(5)--Dart流程控制语句
条件语句:if、if...elseif、if...elseif...else
int score = ;
if (score >=) {
print('优秀');
} else if (>=score && score<) {
print('良');
} else if (>=score && score<) {
print('及格');
} else {
print('不及格');
} //优秀
循环语句:for、forin
//使用for循环
var list = [,,];
for(var i=; i<list.length; i++) {
print(list[i]);
}
//使用forin循环
for (var item in list) {
print(item);
}
/*
1
2
3
*/
循环语句:while循环、do...while循环
//while 先判断条件在执行
int i = ;
while (i < ) {
print(i++);
};
/*
0,
1
*/
//do...while 先执行一次在判断条件,至少执行一次
do {
print(i--);
} while (i > && i < ); /*
0,
1
*/
终止当前循环:break 终止离break最近的循环,只能终止一层循环
//当i==2时候已经终止循环了
for (var i = ; i < ; i++) {
if (i == ) {
break;
}
print(i);
}
/*
0,
1
*/ //break终止的只是当前循环,只能终止一层循环
for (var i = ; i < ; i++) {
for (var j = ; j < ; j++) {
if (j == ) {
break;
}
print('[$i,$j]');
};
};
/*
[0,0]
[1,0]
*/
跳出当前循环:continue 跳出当前循环,只能跳出一层循环
//当i==2时候已经跳出循环,执行下一次循环
for (var i = ; i < ; i++) {
if (i == ) {
continue;
}
print(i);
}
/*
0,
1,
3
*/ //contiue跳出的只是当前循环,只能跳出一层循环
for (var i = ; i < ; i++) {
for (var j = ; j < ; j++) {
if (j == ) {
continue;
}
print('[$i,$j]');
};
};
/*
[0,0]
[0,2]
[0,3]
[1,0]
[1,2]
[1,3]
*/
switch...case语句
比较类型可以有:num、String、编译期常量、对象、枚举
非空case必须有一个默认情况
default 处理默认情况
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,则继续执行下面的语句;
如果一个布尔条件值为false,使用assert语句来中断正常执行的代码
Assert语句仅仅只能在调试模式下使用,在生产模式下没有任何作用。
在assert语句后面的括号中,你可以加入任何表示布尔值或者函数的表达式。
如果表达式的值或者函数返回值true,则assert语句成功并继续执行代码。如果值为false,则assert语句失败并抛出一个异常。
//确保这个变量不为空值.
assert(text != null); //确保这个变量小于100.
assert(number < ); //确保它是一个https协议类型的URL.
assert(urlString.startsWith(‘https’));
Flutter学习笔记(6)--Dart流程控制语句的更多相关文章
- Flutter学习笔记(5)--Dart运算符
如需转载,请注明出处:Flutter学习笔记(5)--Dart运算符 先给出一个Dart运算符表,接下来在逐个解释和使用.如下: 描述 ...
- Flutter学习笔记(3)--Dart变量与基本数据类型
一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...
- Flutter学习笔记(4)--Dart函数
如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...
- Flutter学习笔记(6)--Dart异常处理
如需转载,请注明出处:Flutter学习笔记(6)--Dart异常处理 异常是表示发生了意外的错误,如果没有捕获异常,引发异常的隔离程序将被挂起,并且程序将被终止: Dart代码可以抛出并捕获异常,但 ...
- Flutter学习笔记(8)--Dart面向对象
如需转载,请注明出处:Flutter学习笔记(7)--Dart异常处理 Dart作为高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式,基于mixin的继承方式是指:一个类可以继承自多 ...
- Flutter学习笔记(17)--顶部导航TabBar、TabBarView、DefaultTabController
如需转载,请注明出处:Flutter学习笔记(17)--顶部导航TabBar.TabBarView.DefaultTabController 上一篇我们说了BottmNavigationBar底部导航 ...
- Flutter学习笔记(9)--组件Widget
如需转载,请注明出处:Flutter学习笔记(9)--组件Widget 在Flutter中,所有的显示都是Widget,Widget是一切的基础,我们可以通过修改数据,再用setState设置数据(调 ...
- Flutter学习笔记(10)--容器组件、图片组件
如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 上一篇Flutter学习笔记(9)--组件Widget我们说到了在Flutter中一个非常重要的理念"一切皆为组件 ...
- Flutter学习笔记(11)--文本组件、图标及按钮组件
如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 文本组件 文本组件(text)负责显示文本和定义显示样式,下表为text常见属性 Text组件属性及描述 属性名 类型 默认 ...
随机推荐
- 「SAP技术」为正常库存管理的物料做成本中心采购会是什么结果?
SAP 为正常库存管理的物料做成本中心采购会是什么结果? 这种采购可以正常进行,收货后SAP会更新采购订单里指定的费用类科目,而库存数量和库存价值都不会增加. 1, 如下物料号,是正常做库存管理的物料 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之六:安装后端服务器
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- cesium 实现风场图效果(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- 管道及 I/O 重定向
I/O重定向 I/O Redirection 标准输入.标准输出.标准错误输出重定向及综合案例输入重定向及结合案例 标准输入.标准输出.标准错误 file descriptors (FD,文件描述符 ...
- latex 对中文字体设置的一些解决
latex 对中文字体设置的一些解决 直接使用Xelatex编译带中文的文件时,会出现无法识别的错误,这是因为latex默认的环境不支持中文,这时可以使用CTex 宏集.ctex 宏包或xeCJK 宏 ...
- 爬b站视频直链
本来用的api爬取的url失效了(可能是) 就换成了貌似切换不了清晰度的api接口 http://api.bilibili.com/playurl?aid=61735306&page=1&am ...
- NET Core 3.0 项目中使用 AutoFac
.net core 3.1 今天已正式发布,3.1跟3.0差别不是很大,主要是对 3.0一小部分修复和完善,最重要的是.NET Core 3.1是长期支持(LTS)版本,建议大家升级. .net co ...
- JavaWeb学习——在Eclipse里使用Tomcat
JavaWeb学习——在Eclipse里使用Tomcat 摘要:本文主要学习了如何在Eclipse里使用Tomcat服务器. 添加Tomcat 打开Eclipse的配置页面,点击菜单上的“Window ...
- 使用 getUserMedia API获取麦克风和相机等流媒体
概览 mediaDevices 是 Navigator 对象的只读属性,一个单列对象,可以连接访问相机和麦克风,屏幕共享等媒体输入设备 方法 enumerateDevices 请求一个可用的媒体输入和 ...
- Android项目实战之高仿网易云音乐项目介绍
这一节我们来讲解这个项目所用到的一些技术,以及一些实现的效果图,让大家对该项目有一个整体的认识,推荐大家收藏该文章,因为我们发布文章后会在该文章里面加入链接,这样大家找着就很方便. 目录 第1章 前期 ...