我的Ruby学习历程之初识循环结构
2017-09-08 22:10
519 查看
在学习Java循环语句的时候,刚开始对数组操作的时候,总是数组越界,以及其他的一些空指针问题。在Ruby中我不会再担心越界的问题了,哈哈。Java中的foreach使用时我就已经感觉很容易了,而Ruby中有更容易的方法。其实循环的方式多了,刚开始容易搞乱,不过我觉的一步一个脚印,慢慢来,一定可以吸收的
循环的多种方式(语句or方法)
我觉的面对这么多的循环方式,进行一下如此的分类更有助于记忆。
方法类型的循环,是通过对象调用的,前边接触过each这个方法,当时是对数组以及杂凑进行迭代使用的,而它确实就是这样来进行使用的;与之同类型的方法还有times,它是被 想要执行的次数 执行的,即 次数.times ;loop方法我觉得好比是个while(true)循环,无限循环,可以通过break配合其他条件判断跳出循环,我觉得它不太像是个方法,更像是个语句。
语句类型的循环,for、while、until都需要条件的支持,如果满足条件就一直执行,所以从这里来看loop也不符合他们的共同点。
大多情况使用循环语句就可以解决问题了,循环方法在一些场景下如果运用的话或许会更简单一些。
下面依次展示一些这几种方式的使用方式,以及明确在使用的使用要注意的一些点。
1、times
想要重复执行的次数 . times do
想要重复执行的动作
end
其实无论在何处,do~end都可以和{ ~ }相互转化吧,不过眼睛看起来使用do~end更加明确清晰一些,这也算是自己认识到的新方式,所以应该注意
次数一旦设定之后,就不会改变,如果不跳出的话,就会执行指定的次数;
也可以在do的后边跟一个 | i |,这个 i 里保存了循环次数的信息,不过是从 0 开始的,你一定对这种方式特别熟悉,因为很多其他的方式也可以这么使用,比如each方法;
这里这个 i 如果表示循环第几次的话,对于程序的可读性来说并没有什么好处,所以一般尽量不要使用,因为有更好的方式等着你。
2、for
A、首先,for语句可以用来替代times的一种形式如下
for 变量 in 开始的数值 . . . 结束的数值 do
想要重复执行的动作
end
这里的do可以省略,不过为了不出岔子,就按照不可以省略写就好。
这里需要注意的是,开始和结束是 左闭右开,特别需要注意!
B、一般的for语句的使用
使用的方式如下:
for 变量 in 对象 do
想要重复的动作
end
是不是和上边的不一样了啊,其实意思是一样的,上边的三个点 . . . 其实是一种建立范围对象的特殊记号,也就是说上边的是这个的特殊情况。
这里的对象也不是什么对象都可以的,比如数组、杂凑都是可以的,所以我觉得这个for和Java的foreach真的很相似。
3、while
使用的方式如下:
while 条件 do
想要重复的操作
end
其实这里的while循环,跟Java中的while循环意思是一模一样的,只要条件成立就会一直执行操作,知道条件不成立或者内部控制跳出为止。
4、until
从小学英语就学到until是 直到...时候 的意思;所以这个意思在这里其实就差不多明白了。好比if和unless(如果不)对立一样,until和while又是一组对立。哈哈,为什么明明用一种方式明明就可以实现要求的功能了,为什么还要设计一个对立的方式呢?可能这种反的方式在特定的情况下会特别方便,但是我觉得像我这里思维不是特别灵敏的,以后就通过正向的方式来写程序吧,毕竟对我来说反着写容易出错。
until 条件 do
想要重复的操作
end
while是当条件成立的时候执行操作,所以until就是当条件不成立的时候执行操作。一般情况下while加!运算符解决问题就足够了。
5、each
对象 . each do |变量|
想要重复执行的操作
end
有没有发现跟for真的很相似啊,哈哈,有点混乱了。实际上,Ruby内部处理上将each方法视为基本的循环方式,for则是使用each去实现的特殊语法。所以看来each更牛一些呀,不过到底该如何选择呢?文章最后我们整理总结一下。
6、loop
loop方法没有任何条件限制,只是不断的进行循环操作。
如果使用时有必要,可以配合跳出循环的操作一起使用。
总结:
跟Java中一样,所有的循环,如果只考虑功能的话,仅仅使用while循环就足够了;但是程序不仅仅只是实现功能,代码容易让人看懂也很重要,所有其他的循环也是很有必要的。
循环使用的各种方式及用途
语法糖衣指的是用更简单的语法形式实现原来复杂形式的功能。
如果次数确定的话,使用times最方便了;其他的情况使用while和each几乎都可以解决了,所以掌握这三种方式是最基本的要求了。不过仅仅凭借循环结构很多问题是无法解决的,还需要搭配循环控制的一些关键字,控制循环的走向,这样才能真真正正的解决问题。
循环的多种方式(语句or方法)
我觉的面对这么多的循环方式,进行一下如此的分类更有助于记忆。
方法类型的循环,是通过对象调用的,前边接触过each这个方法,当时是对数组以及杂凑进行迭代使用的,而它确实就是这样来进行使用的;与之同类型的方法还有times,它是被 想要执行的次数 执行的,即 次数.times ;loop方法我觉得好比是个while(true)循环,无限循环,可以通过break配合其他条件判断跳出循环,我觉得它不太像是个方法,更像是个语句。
语句类型的循环,for、while、until都需要条件的支持,如果满足条件就一直执行,所以从这里来看loop也不符合他们的共同点。
大多情况使用循环语句就可以解决问题了,循环方法在一些场景下如果运用的话或许会更简单一些。
下面依次展示一些这几种方式的使用方式,以及明确在使用的使用要注意的一些点。
1、times
想要重复执行的次数 . times do
想要重复执行的动作
end
其实无论在何处,do~end都可以和{ ~ }相互转化吧,不过眼睛看起来使用do~end更加明确清晰一些,这也算是自己认识到的新方式,所以应该注意
次数一旦设定之后,就不会改变,如果不跳出的话,就会执行指定的次数;
也可以在do的后边跟一个 | i |,这个 i 里保存了循环次数的信息,不过是从 0 开始的,你一定对这种方式特别熟悉,因为很多其他的方式也可以这么使用,比如each方法;
这里这个 i 如果表示循环第几次的话,对于程序的可读性来说并没有什么好处,所以一般尽量不要使用,因为有更好的方式等着你。
2、for
A、首先,for语句可以用来替代times的一种形式如下
for 变量 in 开始的数值 . . . 结束的数值 do
想要重复执行的动作
end
这里的do可以省略,不过为了不出岔子,就按照不可以省略写就好。
这里需要注意的是,开始和结束是 左闭右开,特别需要注意!
B、一般的for语句的使用
使用的方式如下:
for 变量 in 对象 do
想要重复的动作
end
是不是和上边的不一样了啊,其实意思是一样的,上边的三个点 . . . 其实是一种建立范围对象的特殊记号,也就是说上边的是这个的特殊情况。
这里的对象也不是什么对象都可以的,比如数组、杂凑都是可以的,所以我觉得这个for和Java的foreach真的很相似。
3、while
使用的方式如下:
while 条件 do
想要重复的操作
end
其实这里的while循环,跟Java中的while循环意思是一模一样的,只要条件成立就会一直执行操作,知道条件不成立或者内部控制跳出为止。
4、until
从小学英语就学到until是 直到...时候 的意思;所以这个意思在这里其实就差不多明白了。好比if和unless(如果不)对立一样,until和while又是一组对立。哈哈,为什么明明用一种方式明明就可以实现要求的功能了,为什么还要设计一个对立的方式呢?可能这种反的方式在特定的情况下会特别方便,但是我觉得像我这里思维不是特别灵敏的,以后就通过正向的方式来写程序吧,毕竟对我来说反着写容易出错。
until 条件 do
想要重复的操作
end
while是当条件成立的时候执行操作,所以until就是当条件不成立的时候执行操作。一般情况下while加!运算符解决问题就足够了。
5、each
对象 . each do |变量|
想要重复执行的操作
end
有没有发现跟for真的很相似啊,哈哈,有点混乱了。实际上,Ruby内部处理上将each方法视为基本的循环方式,for则是使用each去实现的特殊语法。所以看来each更牛一些呀,不过到底该如何选择呢?文章最后我们整理总结一下。
6、loop
loop方法没有任何条件限制,只是不断的进行循环操作。
如果使用时有必要,可以配合跳出循环的操作一起使用。
总结:
跟Java中一样,所有的循环,如果只考虑功能的话,仅仅使用while循环就足够了;但是程序不仅仅只是实现功能,代码容易让人看懂也很重要,所有其他的循环也是很有必要的。
循环使用的各种方式及用途
语法糖衣指的是用更简单的语法形式实现原来复杂形式的功能。
如果次数确定的话,使用times最方便了;其他的情况使用while和each几乎都可以解决了,所以掌握这三种方式是最基本的要求了。不过仅仅凭借循环结构很多问题是无法解决的,还需要搭配循环控制的一些关键字,控制循环的走向,这样才能真真正正的解决问题。
相关文章推荐
- 我的Ruby学习历程之初识循环控制
- Ruby学习记录 - 循环结构
- 我的Ruby学习历程之初识条件判断
- 我的Ruby学习历程之初识数组
- 我的Ruby学习历程之初识Hash(杂凑)
- 我的Ruby学习历程之初识对象
- 我的Ruby学习历程之初识变量
- 我的Ruby学习历程之初识方法
- Ruby学习笔记-循环与选择结构
- Ruby学习笔记-循环与选择结构
- JqueryMobile学习之一---初识jquerymobile(JQM的基本页面结构及页面切换
- Java基础视频教程第03天_学习笔记之循环结构、函数
- 实验五——循环结构学习总结
- 零基础HTML学习历程 (一) 初识HTML
- C#学习笔记11:C#中的顺序结构、分支结构、循环结构
- PHP学习笔记——PHP循环结构的介绍;循环结构while语句;
- WEBX2.0学习源码分析(一)初识webx2.0 基本目录结构
- PHP学习笔记——循环结构for语句应用
- 从零开始学Scala系列(三)之初识循环分支结构
- java学习10--循环结构-for与while区别、无限循环、循环应用