Ruby简明教程之循环语句介绍,Ruby基础知识之主旨流程序调节制

巡回结构在编制程序语言中是必备的,所以Ruby中的循环也可能有其自定义的法规。

那篇文章主要介绍了Ruby简明教程之循环语句介绍,极其简单的上课,能够视作语法备忘,供给的情人可以参见下

(一)条件推断 原则剖断为基本式:

而笔者辈关怀循环结构,要驾驭多个成分:1) 循环的准则;2) 循环试行的内容

循环结构在编制程序语言中是必需的,所以Ruby中的循环也可以有其自定义的平整。

复制代码 代码如下:

Ruby有局地方法来兑现循环结构体:

而作者辈关心循环结构,要清楚五个要素:1) 循环的准则;2) 循环实施的源委

if expression
       code
end

1. times方法

Ruby有一对办法来落到实处循环结构体:

表达式如若不是false或nil,则可实行code部分,所以对于else来讲,假诺为false或nil,则else下的代码是要实践的。要注意的是表明式与实行代码之间要有分界符:比如换行或总局或是then关键字。
多规格分支情形下,除了能够用else if之外,能够用省略式:elsif

在眼下已经有涉嫌过了,语法如下:

1. times方法

复制代码 代码如下:

复制代码 代码如下:

在头里已经有涉及过了,语法如下:

if expression1
       code1
elsif expression2
Ruby简明教程之循环语句介绍,Ruby基础知识之主旨流程序调节制。       code2
else
       code3
end

循环次数.times do                    循环次数.times {
      重复实践的动作                         
重复实践的动作              
end                                               }

复制代码代码如下:

万一经过then做为分界符:
if expression then code end,那么可以把if直接做为分界符:code if
expression,那时,if称为表达式修饰符。先写施行再写试行尺度。要留心的是:假诺成为表明式修饰符,则实行代码与if之间无法带换行符。尽管这种方法也是一种口径句,但本人认为它更像一种修饰。

#也足以在times模块中参与变量

循环次数.times do                    循环次数.times {
      重复实践的动作                         
重复实行的动作               
end                                               }

对此if剖断来讲,它能够回去施行代码后的值。

5.times { |i|
    print “This is the”, i+1, ” time. \n”
}

 

与if条件相仿,还大概有unless剖断,它和if相反。

# i变量是从0初阶总结的

#也足以在times模块中步入变量

在C#中,多分支语句有个switch case开关,在ruby中,则是case when。case
when极其灵活。

2. for 语句

5.times { |i|
    print “This is the”, i+1, ” time. \n”
}

(二)循环

复制代码 代码如下:

# i变量是从0开首推断的

循环条件是while do或until do,而坐落它们之间的是循环体。
现条件if相似,循环语句也足以用分界符的花样做严酷循环,这时,省略了换行符和end。

语法:
for 变量 in 起始数值..甘休数值 do
   反复实行的动作
end

 

复制代码 代码如下:

# do是足以归纳的

2. for 语句

x=1
puts x,x+=1 while x<10
 
while x<20 do
  puts x
  x+=1
end

from = 0
to = 20
sum = 0
for i in from..to
   sum += 1
end

复制代码代码如下:

 
在C#中有for循环应用特别遍布,在ruby中,for循环与foreach的机能类似,用于对可枚举对象举行迭代。

语法:
for 变量 in 对象
  一再实施的动作
end

语法:
for 变量 in 开端数值..甘休数值 do
   频频试行的动作
end

复制代码 代码如下:

names = [“Windy”, “Cindy”, “Jack”, “Hugo”]
for name in names
   print name, ” likes Ruby. \n”
end

 

for var in collection do
       code
end

其次个语法的for语句,与java中的for each语句特别类似,for (i in list?)
{…}

# do是能够归纳的

里头collection是带有each迭代方法的靶子;do关键字可选(能够用换行符或分行代替)。

3. while 语句

from = 0
to = 20
sum = 0
for i in from..to
   sum += 1
end

复制代码 代码如下:

while语句与JAVA中也是近乎的

语法:
for 变量 in 对象
  一再实行的动作
end

arr=%w[1 2 3 4 5 6]
for item in arr
  print item<<” “
end
 
hash1={:a=>1,:b=>2,:c=>3}
for key,value in hash1
  print “#{key}=#{value}”<<” “
end

复制代码 代码如下:

names = [“Windy”, “Cindy”, “Jack”, “Hugo”]
for name in names
   print name, ” likes Ruby. \n”
end

(三)迭代器和枚举 除此之外循环调控while、for、until外,有种特殊的主意用于循环,也正是迭代器,它是ruby最首要的性状之一。
(1)数值迭代器
upto:为二个间距内的全体整数调用其关系的代码块。右边为开首,侧边为终结。
downto:与upto相反。
times:调用关系的代码一定的次数,且把0到n-1传递给代码。
step:以自然的大幅度,迭代扩充到钦定数值。第一个参数为宽度。

语法:
while 条件 do
   一再实施的动作
end

其次个语法的for语句,与java中的for each语句特别临近,for (i in list?)
{…}

复制代码 代码如下:

a = 1
sum = 0
while a < 10 do
   sum += a
   i += a
end

 

1.upto(5){|x|print “#{x} “}
puts
5.downto(1){|x|print “#{x} “}
puts
3.times{|x|print “#{x} “}
puts
3.step(5,0.5){|x|print “#{x} “}
 

4. until 语句 其语法与while语句看似,只是唯有标准不合乎的时候,才会一再实施循环

3. while 语句

(2)枚举迭代器
each:将迭代成分传递给代码。
collect:为调用它的枚举的种种成分实行关联代码后,组合到一起做为贰个数组再次回到。
select:为调用它的枚举的种种元素试行关联代码后,假若为真,组合到三头做为贰个数组重临。
reject:与select相反。它把为false或nil的要素做为三个多少重临。
inject:求积存值迭代。通过七个参数调用关联代码块,第贰个参数是前次调用代码块的积存值,第4个参数指调用举办迭代的下多少个成分。若是有传递参数,则做为第三个参数的发端值,若无,则把第2回开始展览迭代的要素值做为早先值。

复制代码 代码如下:

while语句与JAVA中也是周围的

复制代码 代码如下:

语法:
until 条件 do
    再三实施的动作
end
# do能够简轻易单

复制代码代码如下:

a1=[1,2,3]
a2=a1.map{|x| x+1}
a3=a2.collect{|x| x+1}
print a2,a3
 
#o偶数
a5=a1.select{|x|x%2==0}
print a5
 
a6=a1.reject{|x|x%2==0}
print a6
puts
a7=a1.inject{|sum,x|x+sum}
puts a7
a8=a1.inject(10){|sum,x|x+sum}
puts a8

sum = 0
until sum > 50
   sum += 1
end
print sum

语法:
while 条件 do
   每每实行的动作
end

你或然感兴趣的作品:

  • Ruby基础知识之方法、代码段
  • Ruby基础知识之数据类型
  • Ruby基础知识等等

# 以上until循环能够调换来上面包车型客车while循环
while !(sum > 50)
   sum += 1
end

 

5. each 方法 在前边已经涉及过这几个法子了,这里就大概记录下语法

a = 1
sum = 0
while a < 10 do
   sum += a
   i += a
end

复制代码 代码如下:

 

对象.each { |变量|

4. until 语句 其语法与while语句看似,只是唯有标准不相符的时候,才会反复实行循环

     想要每每实施的动作

 

}

复制代码代码如下:

6. loop方法

语法:
until 条件 do
    反复实施的动作
end
# do能够简单

它是一种未有终结条件的点子,只是不停拓展巡回处理,示比方下:

 

复制代码 代码如下:

sum = 0
until sum > 50 
   sum += 1
end
print sum

loop {
   print “Ruby”
}

# 以上until循环能够转产生下边包车型客车while循环
while !(sum > 50) 
   sum += 1
end

循环的决定:

 

关键有如下首要字:break,next,redo;而在java中,则有break,continue,return

5. each 方法 在日前已经涉及过那些法子了,这里就概括记录下语法

       命令 用途
break 停止动作,马上跳出循环
next 直接跳到下一个循环
redo 以相同的条件重新执行这一次循环

复制代码代码如下:

总计:当次数固定期,使用times方法相比好,而任裴帅过百分之五十生生不息大概都足以使用while和each方法。

对象.each { |变量|

您恐怕感兴趣的稿子:

  • Python和Ruby中each循环引用变量问题(八个隐衷BUG?)

 

     想要屡次实施的动作

}

 

6. loop方法

它是一种没有终止条件的点子,只是不断拓展巡回管理,示举例下:

复制代码代码如下:

美高梅开户网址 ,loop {
   print “Ruby”
}

 

循环的决定:

珍视有如下首要字:break,next,redo;而在java中,则有break,continue,return

       命令 用途
break 停止动作,马上跳出循环
next 直接跳到下一个循环
redo 以相同的条件重新执行这一次循环

 

小结:当次数固定期,使用times方法比较好,而其余大部巡回大约都能够应用while和each方法。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图