[dart学习]第六篇:流程控制语句
经过前面的基础知识了解学习,我们今天可以进入语句模块啦。
dart主要有以下流程控制语句:
- if-else
- for循环
- while和do-while循环
- break和continue
- switch-case
- assert
- 当然,你还可以使用 try-catch或throw
(一)if-else
dart的if(或者else if)的条件表达式必须为bool表达式,不能使用其他类型。dart的if-else用法与C语言类似,不再细述。
int a = 6;
if(a<0)
{
print("aaa");
}
else if((a>=0) && (a<=3))
{
print("bbb");
}
else
{
print("ccc");
}
(二) for循环
与C语言系的for循环用法相同,不再细述。补充一点:对于List和Set等可迭代类型,也可以使用for-in格式去迭代(有点像python),看个例子:
var collection = [, , ];
for (var x in collection) {
print(x); // 0 1 2
}
就是这样。
(三) while和do-while
这两个也不再细述了,和C语言一样。(while循环是先判条件再执行动作;do-while是先执行动作再判循环条件)。
(四)break和continue
与C语言一样,break是跳出当前循环,continue是跳过当次循环的剩余语句,继续开始新一次的循环。
(五)switch-case
与C语言类似,不再细述。一点特例,dart在switch-case里支持continue:
var command = 'CLOSED';
switch (command) {
case 'CLOSED':
executeClosed();
continue nowClosed;
// Continues executing at the nowClosed label. nowClosed:
case 'NOW_CLOSED':
// Runs for both CLOSED and NOW_CLOSED.
executeNowClosed();
break;
}
(六)assert
如果布尔条件为false,则会中断执行。assert语句是有两个参数的
assert(condition, optionalMessage); //第二个参数是可选的
第一个参数可以是返回值为bool的表达式,如果表达式的返回值为true,则assert通过且程序继续正常执行; 如果表达式为false,则assertion失败且抛出一个异常。
再贴一段官方的注释,讲了assert能有效工作的场景,大家自行阅读吧
When exactly do assertions work? That depends on the tools and framework you’re using:
- Flutter enables assertions in debug mode.
- Development-only tools such as dartdevc typically enable assertions by default.
- Some tools, such as dart and dart2js, support assertions through a command-line flag:
--enable-asserts
.
In production code, assertions are ignored, and the arguments to assert
aren’t evaluated.
[dart学习]第六篇:流程控制语句的更多相关文章
- 20151013 C# 第一篇 流程控制语句
20151013 流程控制语句: 1.选择语句 if … else if...else 选择语句 if(布尔表达式){ 语句块:} if(布尔表达式){ 语句块1:}else{ 语句块2:} i ...
- 二、JavaScript语言--JS基础--JavaScript进阶篇--流程控制语句
1.if语句--做判断 if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位, ...
- JavaSE基础篇—流程控制语句
本章知识点分析: 流程控制语句 1.定义:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控 制方式采用结构化程序设计中规定的三种基本流程机构:顺序结 ...
- 大数据学习--day03(运算符、流程控制语句)
运算符.流程控制语句 自增自减容易出错的地方: 扩展的赋值运算符 a+=b 等同于 a = a+b; 扩展的赋值运算符 隐含了一个类型的强制转换 & && 有何区别 & ...
- [dart学习]第五篇:操作符
前言:本系列内容假设读者有一定的编程基础,如了解C语言.python等. 本节一起来学习dart的操作符,直接拷贝官网的操作符描述表如下: Description Operator unary pos ...
- 从.Net到Java学习第六篇——SpringBoot+mongodb&Thymeleaf&模型验证
SpringBoot系列目录 SpringBoot整合mongodb MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.如果你没用过Mong ...
- [dart学习]第四篇:函数和操作符(本篇未完待续)
接着学习dart的函数和操作符. 1.函数Function dart是一种真正的面向对象的语言,通常一个函数也是Function类型的对象,这也就是说可以把函数赋值给一个变量,或者作为另一个函数的入参 ...
- [dart学习]第三篇:dart变量介绍 (二)
本篇继续介绍dart变量类型,可参考前文:第二篇:dart变量介绍 (一) (一)final和const类型 如果你不打算修改一个变量的值,那么就把它定义为final或const类型.其中:final ...
- Javascript进阶篇——(流程控制语句)笔记整理
做判断(if语句)if语句是基于条件成立才执行相应代码时使用的语句.语法: if(条件){ 条件成立时执行代码 } 例子:假设你应聘web前端技术开发岗位,如果你会HTML技术,你面试成功,欢迎加入公 ...
随机推荐
- rabbitMQ安装 [linux]
转载 https://blog.csdn.net/qq_22075041/article/details/78855708 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Er ...
- Linux下zookeeper集群搭建
Linux下zookeeper集群搭建 部署前准备 下载zookeeper的安装包 http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper ...
- layer学习
layer版本v2.1 1,layer的alert可以传标题的: layer.alert("测试layer弹窗===========", {title:"温馨提示&quo ...
- 单元测试框架之unittest(七)
一.摘要 前篇文章已经详细介绍了unittest框架的特性,足以满足我们日常的测试工作,但那并不是unittest的全部,本片博文将介绍一些应该知道但未必能经常用到的内容 然而,想全部掌握unitte ...
- vim 操作命令大全
转子:https://www.cnblogs.com/yangjig/p/6014198.html 和 https://blog.csdn.net/u010956473/article/detail ...
- ASP.NET Uploadify 上传文件过大报错
Uploadify上传文件原来很早之前用过,没发现什么问题.今天再使用过程中,当文件大于30M的时候就会报错404.查看错误消息提示配置最大上传太小了.需要修改. 记得原来配置上传文件大小在这里:&l ...
- nginx中ngx_http_access_module模块
实现基于IP的访问控制功能指令:4.1 allow允许访问指定的⽹网络或地址Syntax: allow address | CIDR | unix:| all;Default: —Context: h ...
- WCF双通信
请求过程中的回调 这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用的时候,附加上一个回调对象:服务在对处理该处理中,通过客户端附加的回调对象(实际上是调用回调服务的代理对象)回调客户 ...
- SVG矢量绘图 path路径详解(贝塞尔曲线及平滑)
以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...
- 选择排序之javascript
选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放 ...