今天说说Kotlin中的循环迭代的内容。

我们这里还是对比Java来学习Kotlin中的循环迭代的写法。

Java中的循环

Java中的循环主要包括while()、do{}while()、for和foreach这几种方式,放上代码简单复习一下,便于与后面的Kotlin代码对比。

Java代码

public class JavaLoop {public static void main(String[] args) {int[] data = {1, 2, 3, 4, 5, 6};//while循环int index = 0;int len = data.length;while (index < len){System.out.println(data[index++]);}//do...while循环int sum = 0;do{System.out.println(sum);sum += 1;}while (sum < 100);//for循环for (int i = 0; i < len; i++){System.out.println(data[i]);}//foreach循环for(int da : data){System.out.println(da);}}
}
复制代码

上面的只是通过简单的代码复习了下Java中循环的写法,下面关键看看Kotlin中的循环。

Kotlin中的循环

Kotlin中的while循环和do...while循环与Java中的写法是一样的,这里不再重复,我们只要说说Kotlin的新特性。 在Kotlin中没有一般意义的for循环结构,就想下面这种。

//for循环
for (int i = 0; i < len; i++){System.out.println(data[i]);
}
复制代码

这种结构在Kotlin中是没有的,Kotlin中引入了一个新的概念区间。其实这个概念我们在数学中是学过的。 在Kotlin中使用m..n这种形式来表示一个m到n的闭区间,然后又使用in来表示每次从区间里面取一个值,放上代码。

Kotlin代码

fun main(args: Array<String>){for (i in 1..100){print(i)}
}
复制代码

上面的代码打印出1-100之间的数字,包括1和100。 当然你可能还想每次不是递增1,那就设置step步长好了,如下打印出1-100之间的所有奇数。

fun main(args: Array<String>){for (i in 1..100 step 2){print(i)}
}
复制代码

你可能还想倒着输出1-100之间的所有数,那也可以。

for (i in 100 downTo 1 step 1){print(i);
}
复制代码

100 downTo 1表示从100减小到1,step仍然表示步长。 当然for循环不止可以迭代数字,我们知道在Java中可以使用循环输出连续的字符,这其实是利用了ASCII码来做到的,就像下这样。

Java代码

for (char i = 'A'; i <= 'Z'; i++){System.out.print(i);
}
复制代码

在Kotlin中我们不但可以写一个数字区间,也可以写一个字符区间,实现与上面的Java代码一样的功能,就像下面一样。

for(c in 'A'..'Z'){print(c)
}
复制代码

写在最后

是不是发现Kotlin中的循环更加简洁,而且语意更加清晰,而且Kotlin的for循环可以实现一般的for循环的所有功能。

Kotlin系列之循环相关推荐

  1. [译]Effective Kotlin系列之探索高阶函数中inline修饰符(三)

    简述: 不知道是否有小伙伴还记得我们之前的Effective Kotlin翻译系列,之前一直忙于赶时髦研究Kotlin 1.3中的新特性.把此系列耽搁了,赶完时髦了还是得踏实探究本质和基础,从今天开始 ...

  2. Kotlin系列之集合和函数式API完全解析-上篇

    简述: 今天带来的是Kotlin浅谈系列的第八讲,这讲我们一起来聊聊Kotlin这门语言对函数式编程的支持.我们都知道在kotlin这门语言中函数荣升成为了一等公民,所以在支持函数式编程的方面,Kot ...

  3. Kotlin系列之基础语法

    标签: Kotlin      Kotlin基础语法 目录: 一.包的声明 二.函数的定义 三.常量和变量 四.注释 五.字符串模板 六.使用条件表达式 七.NULL检查机制 八.类型检测以及自动类型 ...

  4. Kotlin系列之Lambda表达式(1)

    今天开始后续的几篇Kotlin的文章会介绍Kotlin中Lambda表达式相关的内容. 什么是Lambda表达式 在Java8中引入了Lambda表达式,这是最令Java开发者激动和期待的一个功能.那 ...

  5. Kotlin入门(7)循环语句的操作

    上一篇文章介绍了简单分支与多路分支的实现,控制语句除了这两种条件分支之外,还有对循环处理的控制,那么本文接下来继续阐述Kotlin如何对循环语句进行操作. Koltin处理循环语句依旧采纳了for和w ...

  6. Kotlin系列之Lambda编译成字节码过程完全解析

    简述: 今天带来的是Kotlin浅谈系列第七弹,上篇博客我们聊到关于Kotlin中的lambda表达式的一些语法规则和基本使用.然而我们并没有聊到Kotlin的lambda表达式的本质是什么?我们都知 ...

  7. [译]Effective Kotlin系列之考虑使用原始类型的数组优化性能(五)

    翻译说明: 原标题: Effective Kotlin: Consider Arrays with primitives for performance critical processing 原文地 ...

  8. Kotlin系列之let、with、run、apply、also函数的使用

    标签: Kotlin      常用技巧 目录: 一.回调函数的Kotin的lambda的简化 二.内联扩展函数之let 三.内联函数之with 四.内联扩展函数之run 五.内联扩展函数之apply ...

  9. iOS开发系列--无限循环的图片浏览器

    概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授 ...

最新文章

  1. 2019互联网大厂的月饼哪家强?
  2. android收费知乎,知乎 Android 端的一次重设计练习
  3. [云炬创业基础笔记]第十章企业的利润计划测试2
  4. python中包的循环导入_具有继承的包中的循环导入依赖项
  5. Java的原始字符串文字
  6. 利用trunk实现vlan内通信_实现不同VLAN间通信——单臂路由
  7. IDEA 配置Tomcat
  8. windows 创建不可见账户
  9. linux日志保存10个,Linux 124课程 10、分析存储日志
  10. 网上收集总结一下mssql( 部分)
  11. 使用 VBRichClient 库
  12. [Python从零到壹] 十八.可视化分析之Basemap地图包入门详解
  13. 微信小程序data format error解决办法
  14. 为什么苏联打下了如此强的数学基础,俄罗斯却至今无法成为AI强国?
  15. 助力自己在金融领域中更加游刃有余的人大与加拿大女王大学金融硕士项目你读到了吗?
  16. 153870-20-3,S-acetyl-PEG3-alcohol羟基可以反应进一步衍生化合物
  17. python对月饼数据进行可视化,看看哪家最划算
  18. 十五、圣礼是蒙恩的凭藉
  19. Oracle触发器(当A表新增/修改/删除时,同步数据到B表)
  20. 同一个网址电脑手机访问显示不同内容思路

热门文章

  1. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler...
  2. BIEE连接数据库的方法
  3. [postgresql] postgresql 安装
  4. Linux中输入输出重定向和管道
  5. 简述如何书写工程化的简单代码
  6. bzoj3895: 取石子(博弈论,记忆化搜索)
  7. 我的学习之路_第二章_接口/多态
  8. JS基础——循环很重要
  9. 1021. 个位数统计 (15)
  10. 在项目中学习.NET的JQuery CheckBox方法(全选、取消全选、其他)