有时,某些指令需要重复执行。循环是一种理想的方法。循环表示必须重复的一组指令。在循环的上下文中,重复被称为迭代 。

下图说明了循环的分类

让我们开始讨论确定循环。迭代次数是确定/固定的循环称为确定循环 。

序号 循环和描述
1 for 循环

for循环是一个明确的循环的实现。for循环执行代码块指定的次数。它可用于迭代一组固定的值,例如数组

2 for ... in 循环

for ... in循环用于循环对象的属性。

下面我们来看看不确定循环。当循环中的迭代次数不确定或未知时,将使用不定循环。可以使用以下方式实现确定循环:

序号 循环和描述
1 while 循环

每次指定的条件求值为true时,while循环都会执行指令。换句话说,循环在执行代码块之前评估条件。

2 do…while 循环

do ... while循环类似于while循环,只是do ... while循环不会在第一次循环执行时评估条件。

现在让我们继续讨论Dart的 循环控制语句

序号 控制声明和描述
1 break 语句

break语句用来作为控制了结构的。在循环中使用break会导致程序退出循环。以下是break语句的示例。

2 continue Statement

continue语句跳过当前迭代的后续语句,并采取控制回到循环的开始。

使用标签来控制程序流程

标签是只是一个标识符,后跟一个冒号(:)被加到一个语句或代码块。标签可以与breakcontinue一起使用,更精确地控制流量。

continuebreak语句与其标签名称之间不允许换行符。此外,标签名称和关联循环之间不应该有任何其他语句。

示例:带有break的标签

void main() {
outerloop: // This is the label name for (var i = 0; i < 5; i++) {
print("Innerloop: ${i}");
innerloop: for (var j = 0; j < 5; j++) {
if (j > 3 ) break ; // Quit the innermost loop
if (i == 2) break innerloop; // Do the same thing
if (i == 4) break outerloop; // Quit the outer loop
print("Innerloop: ${j}");
}
}
}

成功执行上述代码后,将显示以下输出 。

Innerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 2
Innerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 4

示例:带continue的标签

void main() {
outerloop: // This is the label name for (var i = 0; i < 3; i++) {
print("Outerloop:${i}"); for (var j = 0; j < 5; j++) {
if (j == 3){
continue outerloop;
}
print("Innerloop:${j}");
}
}
}

成功执行上述代码后,将显示以下输出。

Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2 Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2 Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2

本文转自:http://codingdict.com/article/21915

Dart编程循环的更多相关文章

  1. Dart编程实例 - 类型测试操作符 is!

    Dart编程实例 - 类型测试操作符 is! void main() { double n = 2.20; var num = n is! int; print(num); } 本文转自:http:/ ...

  2. Dart编程实例 - 类型测试操作符is

    Dart编程实例 - 类型测试操作符is void main() { int n = 2; print(n is int); } 本文转自:http://codingdict.com/article/ ...

  3. Dart编程实例 - 相等和关系操作符

    Dart编程实例 - 相等和关系操作符 void main() { var num1 = 5; var num2 = 9; var res = num1>num2; print('num1 gr ...

  4. Dart编程实例 算术操作符

    Dart编程实例 算术操作符 void main() { var num1 = 101; var num2 = 2; var res = 0; res = num1+num2; print(" ...

  5. Dart编程实例 - Const 关键字

    Dart编程实例 - Const 关键字 void main() { final v1 = 12; const v2 = 13; v2 = 12; } 本文转自:http://codingdict.c ...

  6. Dart编程实例 - Final 关键字

    Dart编程实例 - Final 关键字 void main() { final val1 = 12; print(val1); } 本文转自:http://codingdict.com/articl ...

  7. Dart编程实例 - Dynamic 关键字

    Dart编程实例 - Dynamic 关键字 void main() { dynamic x = "tom"; print(x); } 本文转自:http://codingdict ...

  8. Dart编程实例 - Dart 面向对象编程

    Dart编程实例 - Dart 面向对象编程 class TestClass { void disp() { print("Hello World"); } } void main ...

  9. Dart编程实例 - Enabling Checked Mode

    Dart编程实例 - Enabling Checked Mode void main() { int n="hello"; print(n); } 本文转自:http://codi ...

随机推荐

  1. redis配置篇

    配置 Redis的配置信息在/etc/redis/redis.conf下. 查看 sudo vi /etc/redis/redis.conf 核心配置选项 绑定ip:如果需要远程访问,可将此⾏注释,或 ...

  2. JavaWeb开发之一《Tomcat服务器的部署、安装及应用》

    搬以前写的博客[2014-12-10 21:43] 这几天做了一个Java的程序,然后先把他搭载到Web上,于是学习了基于Tomcat服务器的web开发,这里回顾一下Tomcat服务器的搭建过程. 1 ...

  3. HDU 6326 Problem H Monster Hunter

    \(\mathtt{Problem H}\) \(\mathtt{Monster}\) \(\mathtt{Hunter}\) \(\mathcal{Description}\) 题目 给定一棵 \( ...

  4. pc端与移动端适配解决方案之rem

    使用方式: 在html页面开头,引入下面的原生js代码 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'ori ...

  5. thinkphp 配置参考

    惯例配置 应用设定 'APP_USE_NAMESPACE' => true, // 应用类库是否使用命名空间 3.2.1新增 'APP_SUB_DOMAIN_DEPLOY' => fals ...

  6. Shiro学习(14)SSL

    对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问. 首先生成数字证书,生成证书到D:\localhost.keystore 使用JDK的keyt ...

  7. Delphi 判断某个系统服务是否存在及相关状态

    记得use WinSvc; //------------------------------------- // 获取某个系统服务的当前状态 // // return status code if s ...

  8. 关于Kerberos协议流程的总结

    Kerberos协议工作原理分析 这里面借用一下师傅们的图来说明一下    Kerberos协议的流程大致如下(假设A要获取对Server B的访问权限) 第一步(KRB_AS_REQ) 这一步客户 ...

  9. 组合数学(math)

    组合数学(math) 题目描述 为了提高智商,zjy开始学习组合数学.某一天她解决了这样一个问题:“给一个网格图,其中某些格子有财宝.每次从左上角出发,只能往右或下走.问至少要走几次才能把财宝全部捡完 ...

  10. python 参数定义库argparse

    python 参数定义库argparse 这一块的官方文档在这里 注意到这个库是因为argparse在IDE中和在ipython notebook中使用是有差异的,习惯了再IDE里面用,转到ipyth ...