Kotlin 区间和循环 Loop和Range
在kotln中有一种很简单的方式来表达某一个区间的数字。
比如我想存储1~100. 我在其他的语言中可以用数组,步骤大概有三个把。
但是在kotlin中就只需要一步。
代码如下:
fun main(args:Array<String>)
{
var nubs=..
}
就是如此简单。
用两个..就可以了。
那么说到了1到100,那么问题来了 我们该如何使用这个呢?
那就是kotlin 的循环。
如果你熟悉其他语言,比如C java c# 你会知道有两种常用的循环方式 while 和for这两个。
我们先来说while,这个循环方式在kotlin中没有什么变化,很常规的使用方式。在kotlin 的官方说明中甚至说” 传统“用法。 哈哈
代码如下:
fun main(args:Array<String>)
{
var n=
while(n<)
{ println("这是第${n}边输出)
n++
}
所谓while就是先检查条件,当while旁边的括号内成立的时候就执行花括号内的程序。 之后再回到条件的检测中。直到条件不符合条件的时候。
我们上面说过kotlin的区间的使用大部分要是通过循环来使用。那么问题来如何来用呢?
代码如下:
fun main(args:Array<String>)
{
var nubs=..
var n=while(n in nubs)
{
println("第${n}遍")
n++
}
}
解释:
我们想表达这个去区间,我们可以同过一个数字,让这个数字从1一直变到100,来测试这个区间内是否有这个数字。
while (n in nubs) 这其中有一个关键字 in 如果字面意义,“在”, 当n存在与nub时,while 的条件就成立。程序就继续循环。
这里小小的解释:
循环有三个术语,循环条件 循环操作,循环变量。
结合上面的代码我写一个注释:
fun main(args:Array<String>)
{
var nubs=..
var n=
while(n in nubs) //循环条件
{
println("第${n}遍") //循环操作
n++ //循环变量
}
}
变量是为了循环退出,条件是为了是否循环,操作是为了循环的目的。
上面说了while,下面就来说另一个循环: for
for循环相对其他语言来说比不是很普通,但是在面向对象的语言中很常见,kotlin 的for循环有点像C#的foreach。
上面的while代码,我给改成先对应的for循环;
fun main(args:Array<String>)
{
var nubs=..
var n=
for(n in nubs)
{
println("这是输出${n}遍)
}
}
看起来和while没有啥区别..其实感觉上也没有多少区别..
但是!!但是!!
我想对这个区间,nubs输出的时候做一些手脚,比如步进输出,每隔2个数字输出?
我们就需要在for了
而且,我们输出的for 的也可以不用在var一个变量了。
fun main (args: Array<String>)
{
var nubs=..
// var n=1;
for(n in nubs step )
{
println("$n")
}

我们将var n给注释掉,也是没有问题的。
for和while 的用法上相比,for相对灵活,而while还是有一定的要求的。
Kotlin 区间和循环 Loop和Range的更多相关文章
- kotlin的loop和Range、list和map
继续学习Kolin的基础语法,比较简单,直接练习代码.loop和range: 这里用一个场景来说明:计算从1到100之间数的总和,那在kotlin中是如何搞的呢? 上面这么简单的一句代码确实是能表达么 ...
- python循环for,range,xrange;while
>>>range(1,5)#代表从1到5(不包含5) [1,2,3,4] >>>range(1,5,2)#代表从1到5,间隔2(不包含5) [1,3] >&g ...
- Kotlin 区间的一些小注意
1:步进 step 在kotlin 中区间通过循环可以实现每隔几个输出. 比如1..100,我每隔3个输出: fun main(args:Array<Stting>) { .. step) ...
- Atitit 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).
Atitit 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 1.1. 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. ...
- 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate)的区别
表示“重复”这个含义的词有很多, 比如循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称 ...
- Kotlin入门(7)循环语句的操作
上一篇文章介绍了简单分支与多路分支的实现,控制语句除了这两种条件分支之外,还有对循环处理的控制,那么本文接下来继续阐述Kotlin如何对循环语句进行操作. Koltin处理循环语句依旧采纳了for和w ...
- 003_循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate)的区别
表示“重复”这个含义的词有很多, 比如循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称 ...
- 第十三章、学习 Shell Scripts 循环 (loop)
while do done, until do done (不定循环) while [ condition ] <==中括号内的状态就是判断式 do <==do 是回圈的开始! 程序段落 ...
- 循环/loop 结构/structure
1.Shell loop 2.C++/CPlusPlus ①.std::for_each ②.for loop ③.Iterator library 3.Python Loop ①.Python.or ...
随机推荐
- Unity Shader入门精要读书笔记(三)Shader必须的数学基础
Xyz三维坐标系如下:左手坐标系 但是摄像机观察空间则是采用右手系: 右手法则判断叉乘的结果的方向: 正交矩阵(单位互相垂直的基矢量构成正交矩阵)具有逆与转置一致性: 列矩阵运算CBAv和行矩阵的运算 ...
- 如何准确计算Java对象的大小
如何准确计算Java对象的大小 原创文章,转载请注明:博客园aprogramer 原文链接:如何准确计算Java对象的大小 有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两 ...
- VC散列表
vc下有2个版本的散列表类,hash_map和unordered_map,hash_map位于stdext命名空间,unordered_map在std命名空间(vs2008及其之后的版本可用),官方推 ...
- 16c550芯片编写的优化
参考了 <Altera FPGA/CPLD 设计>高级篇, 关于状态机的推荐写法实现的功能是一样的但是编译使用的逻辑门如下图: 下图是我自己编的状态机需要的逻辑: 下图是使用推荐的有限状态 ...
- python's fourteenth day for me 内置函数
locals: 函数会以字典的类型返回当前位置的全部局部变量. globals: 函数会以字典的了类型返回全部的全局变量. a = def func(): b = print(locals()) ...
- Java如何解决form表单上传文件,以及页面返回处理结果通知!
前端JSP代码 <form id='formSumbit' class='form-horizontal' action='/ncpay/route/chlsubmcht/batchImpor' ...
- Linux系统设置Samba共享笔记
# "不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接" C: 之前曾经与主机成功进行连接,连接断开后未将连接状态清除 $: net use */del /y # &q ...
- MFC 打开外部EXE文件的三种方法
目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了<vc中调用其他应用程序的方法(函数) winexec,shellexecute , ...
- 一卡通大冒险(hdu 2512)
因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身.某天,他们在机房商量一个绝妙的计划"一卡通大冒险".这个计划是由wf最先提出来的, ...
- Zookeeper 基础、工作流、ZAP协议
ZooKeeper 基础 在深入了解ZooKeeper的运作之前,让我们来看看ZooKeeper的基本概念.[1] 我们将在本章中讨论以下主题:1.Architecture(架构)2.Hierarch ...