我将在几部分中简要介绍Ruby。一篇文章的长度应保持尽可能短,以便可以快速阅读。
*评论部分补充了@scivola指出的问题。谢谢@scivola。
环境
Ruby:Ruby 2.5.1
操作系统:macOS High Sierra版本10.13.5
while的基本用法
while用来在只要满足特定条件的情况下想要继续处理时使用。基本用法如下。如果条件为真,则需要小心不要进入无限循环,因为它会继续迭代。另外,do是可选的。
helloworld.rb
1 2 3 | while 条件 do 処理 end |
示例
helloworld.rb
1 2 3 4 5 6 | count = 0 while count < 5 puts count count += 1 end |
终端
1 2 3 4 5 6 | MacBook-Pro-od-hoge:~ hoge$ ruby helloworld.rb 0 1 2 3 4 |
时间的基本用法
如果要迭代指定的次数,可以使用
次。不能省略。请注意,变量中输入的值以``0''开头。如果要从1开始使用,请在过程中执行" 1"。写入方法如下。
helloworld.rb
1 2 3 | オブジェクト.times do |変数| 処理 end |
示例
helloworld.rb
1 2 3 | 5.times do|i| puts i end |
终端
1 2 3 4 5 6 | MacBook-Pro-od-hoge:~ hoge$ ruby helloworld.rb 0 1 2 3 4 |
您也可以使用" {?}"而不是" do?end"来编写时间。
helloworld.rb
1 2 3 | オブジェクト.times { |変数| 処理 } |
上面可以写成一行。让我们积极地使用它。
helloworld.rb
1 | 5.times { |i| puts i } |
时间和时间之间的差异
while和time都是迭代处理的两种类型,而while虽然是控制结构,但是times是Integer类的方法。
控制结构
控制结构是根据某些条件改变执行程序的顺序或不执行程序的机制。除了一会儿,还有if和raise。在Ruby中,控制结构是一个表达式,它基本上返回一些值。但是,有些例外不会返回值。
而控制结构
由于
while是控制结构,因此与方法时间有以下差异。
1." do"可以省略。
2.不要创建范围
示例
helloworld.rb
1 2 3 4 5 6 7 8 | i = 0 while i < 10 name = "taro" puts "#{name}は#{i + 1}回ダッシュしました" i += 1 end puts "#{name}は休憩してください" |
终端
1 2 3 4 5 6 7 8 9 10 11 12 | MacBook-Pro-od-hoge:~ hoge$ ruby hellworld.rb taroは1回ダッシュしました taroは2回ダッシュしました taroは3回ダッシュしました taroは4回ダッシュしました taroは5回ダッシュしました taroは6回ダッシュしました taroは7回ダッシュしました taroは8回ダッシュしました taroは9回ダッシュしました taroは10回ダッシュしました taroは休憩してください |
次是方法
times是Integer类的方法,与while相比具有以下区别。而且,时间只能用于Integer类及其别名Fixnum中的对象。
1.由于它是带有" do?end"的块,因此不能省略。
2.块创建范围
helloworld.rb
1 2 3 4 5 6 | 10.times do |i| name = "taro" puts "#{name}は#{i + 1}回ダッシュしました" end puts "#{name}は休憩してください" |
终端
1 2 3 4 5 6 7 8 9 10 11 12 13 | MacBook-Pro-od-hoge:~ hoge$ ruby hellworld.rb taroは1回ダッシュしました taroは2回ダッシュしました taroは3回ダッシュしました taroは4回ダッシュしました taroは5回ダッシュしました taroは6回ダッシュしました taroは7回ダッシュしました taroは8回ダッシュしました taroは9回ダッシュしました taroは10回ダッシュしました Traceback (most recent call last): helloworld.rb:6:in `<main>': undefined local variable or method `name' for main:Object (NameError) |
当
块创建作用域时,将发生上述错误。另外,省略" do"将导致错误。
正确使用一段时间
while和time都是迭代处理的类型。如果您只是想处理任意数量的次数。如果要根据条件执行迭代处理,可以像while一样正确使用它来编写易于阅读的代码。
其他迭代处理
除了这次介绍的迭代处理外,还有每个迭代,向上,向下,步骤等,但是下一次我将再次对其进行总结。
在最后
这是第13篇Ruby入门的结尾,使用while和times进行迭代?再见。
参考
控件结构-Ruby 2.5.0参考手册
在Ruby 2.4中将整数统一为Integers --Qiita
[Ruby]关于迭代处理(每次,每次,每次,循环一次)–任务注释
times方法,upto方法,downto方法--RubyLife
[Ruby简介]循环处理摘要|针对"时间","时间","每个","向上","向下","步骤"循环--Samurai Engineer Cram School Blog