亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

ruby 流程控制 方法

2020-03-29 12:12:18
字體:
來源:轉載
供稿:網友
這章我們將討論更多的Ruby流程控制.

case

我們用case語句測試有次序的條件.正如我們所見的,這和C,Java的switch相當接近,但更強大.

ruby> i=8
ruby> case i
    | when 1, 2..5
    |   print "1..5/n"
    | when 6..10
    |   print "6..10/n"
    | end
6..10
   nil 


2..5表示2到5之間的一個范圍.下面的表達式測試 i 是否在范圍內:

(2..5) === i 


case 內部也是用關系運算符 === 來同時測試幾個條件.為了保持ruby的面對對象性質, === 可以合適地理解為出現在 when 條件里的對

象.比如,下面的代碼現在第一個 when 里測試字符串是否相等,并在第二個 when 里進行正則表達式匹配.

ruby> case 'abcdef'
    | when 'aaa', 'bbb'
    |   print "aaa or bbb/n"
    | when /def/
    |   print "includes /def//n"
    | end
includes /def/
   nil 


while

雖然你將會在下一章發現并不需要經常將循環體寫得很清楚,但 Ruby 還是提供了一套構建循環的好用的方法.

while 是重復的 if.我們在猜詞游戲和正則表達式中使用過它(見前面的章節);這里,當條件(condition)為真的時候,它圍繞一個代碼域以

while condition...end的形式循環.但 while 和 if 可以很容易就運用于單獨語句:

ruby> i = 0
   0
ruby> print "It's zero./n" if i==0
It's zero.
   nil
ruby> print "It's negative./n" if i<0
   nil
ruby> print "#{i+=1}/n" while i<3
1
2
3
   nil 


有時候你想要否定一個測試條件. unless 是 if 的否定, until 是一個否定的 while.在這里我把它們留給你實驗.

There are four ways to interrupt the progress of a loop from inside. First, break means, as in C, to escape from the 

loop entirely. Second, next skips to the beginning of the next iteration of the loop (corresponding to C's continue). 

Third, ruby has redo, which restarts the current iteration. The following is C code illustrating the meanings of break, 

next, and redo:

有四種從內部中斷循環的方法.第一,和C一樣break從循環中完全退出.第二, next 跳到下一次循環迭代的開始(對應于C的 continue ).第

三,Ruby有redo,它可以重新開始現在的迭代.下面是用 C 代碼對break,next,redo的意義做了演示:

while (condition) { 
   label_redo:   
      goto label_next;        /* ruby's "next" */   
      goto label_break;       /* ruby's "break" */   
      goto label_redo;        /* ruby's "redo" */   
      ...   
      ... 
      label_next:
}
label_break:
... 


第四種方法是由循環內跳出的方法是 returen. return的結果是不僅從循環中跳出,而且會從含循環的方法中跳出.如果有參數,它會返回給方法調用,不然就返回nil.

for

C程序員現在會想知道怎樣做一個"for"循環.Ruby的for比你想象的要有趣一點.下面的loop由集合中的元素控制運行:

for elt in collection  
     ...
end 


集合可以是一個數集(也是傳統意義上的for循環):

ruby> for num in (4..6)
    |    print num,"/n"
    | end
4
5
6
   4..6 


也可以是其它的什么類型的集合,比如一個數組:

ruby> for elt in [100,-9.6,"pickle"]
    |    print "#{elt}/t(#{elt.type})/n"
    | end
100    (Fixnum)
-9.6   (Float)
pickle (String)
   [100, -9.6, "pickle"] 


但我們說過頭了.for其實是 each 的另一寫法,正巧,這是我們關于迭代器的第一個例子.下面的兩種形式是等價的:

#  If you're used to C or Java, you might prefer this.
for i in collection  
   ...
end
#  A Smalltalk programmer might prefer this.
collection.each {|i|
   ...



一旦你熟悉了迭代器,它便會常常代替傳統的循環.它們一般更容易處理.因此,讓我們接著學習更多關于迭代器的知識.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人一区二区电影| 亚洲成人av中文字幕| 亚洲国产精品成人一区二区| 91精品美女在线| 久热国产精品视频| 色偷偷综合社区| 欧美大片在线看免费观看| 亚洲人成网站在线播| 久久韩剧网电视剧| 欧美午夜美女看片| 亚洲天堂影视av| 麻豆国产精品va在线观看不卡| 日韩精品在线视频| 日本亚洲欧洲色α| 一本一本久久a久久精品牛牛影视| 日韩最新在线视频| 欧美黑人极品猛少妇色xxxxx| 亚洲国产欧美一区二区三区久久| 欧美大秀在线观看| 亚洲精品福利免费在线观看| 国产日韩在线播放| 国产z一区二区三区| 91精品在线观| 欧美激情视频网| 最近2019好看的中文字幕免费| 91系列在线观看| 日韩精品视频免费专区在线播放| 久久久久久久国产精品视频| 尤物yw午夜国产精品视频| 欧美精品免费在线| 亚洲成人国产精品| 精品国产一区二区三区四区在线观看| 中文字幕欧美在线| 国模gogo一区二区大胆私拍| 九九久久精品一区| 国产精品揄拍500视频| 午夜精品三级视频福利| 欧美性色xo影院| 九九热99久久久国产盗摄| 亚洲日本成人女熟在线观看| 日韩美女视频免费看| 亚洲一二三在线| 91色视频在线导航| 国产精品99一区| 国产精品r级在线| 久久久日本电影| 亚洲精品永久免费精品| 欧美人在线观看| 久久久精品久久久| 亚洲国产精品久久| 日韩黄色高清视频| 91在线精品视频| 成人精品视频久久久久| 日韩av在线播放资源| 亚洲激情成人网| 欧美精品久久久久久久| 自拍视频国产精品| www国产91| 国产精品自产拍在线观| 国产999精品久久久| 国产精品极品在线| 久久露脸国产精品| 欧美香蕉大胸在线视频观看| 亚洲欧美另类国产| 在线成人中文字幕| 国产欧美va欧美va香蕉在线| 亚洲自拍欧美色图| 久久国产精品影视| 精品福利在线观看| 国产成人精品日本亚洲专区61| 精品香蕉在线观看视频一| 在线看片第一页欧美| 亚洲成人久久一区| 欧美在线视频免费观看| 91夜夜未满十八勿入爽爽影院| 久久影视电视剧免费网站清宫辞电视| 久久久久久久电影一区| 国产91露脸中文字幕在线| 久久久人成影片一区二区三区| 狠狠久久亚洲欧美专区| 欧美精品videos| 久久精品亚洲精品| 亚洲免费中文字幕| 久久久成人精品| 精品久久久久久久中文字幕| 亚洲大尺度美女在线| 欧美激情一二三| 精品福利一区二区| 91精品久久久久久久久久另类| 欧美性黄网官网| 亚洲激情免费观看| 欧美超级免费视 在线| 日韩激情片免费| 欧美激情一二区| 亚洲成人a**站| 另类少妇人与禽zozz0性伦| 欧美综合激情网| 久久视频在线观看免费| 性色av香蕉一区二区| 亚洲国产精品悠悠久久琪琪| 日韩欧美黄色动漫| 97精品在线观看| 自拍偷拍免费精品| 久久成人一区二区| 欧美激情亚洲综合一区| 亚洲深夜福利网站| 久久久久久久激情视频| 亚洲va欧美va国产综合久久| 3344国产精品免费看| 国产免费亚洲高清| 精品中文字幕久久久久久| 98精品国产自产在线观看| 国产精品h片在线播放| 91国内揄拍国内精品对白| 国产一区二区三区视频免费| www.美女亚洲精品| 97精品在线观看| 欧美日韩国产中文精品字幕自在自线| 日本精品久久久久影院| 亚洲天堂网站在线观看视频| 97国产在线视频| 最新69国产成人精品视频免费| 97在线视频免费播放| 欧美电影在线观看高清| 国产精品午夜国产小视频| 欧美午夜激情小视频| 日韩中文第一页| 色妞在线综合亚洲欧美| 国产精品一区二区久久久| 日韩欧中文字幕| 久久99亚洲热视| 亚洲韩国青草视频| 欧美俄罗斯乱妇| 国产精品老牛影院在线观看| 欧美成人在线免费视频| 日韩av在线免费观看| 色综合91久久精品中文字幕| 日韩电视剧在线观看免费网站| 国产精品成人国产乱一区| 夜夜嗨av一区二区三区免费区| 欧美最猛黑人xxxx黑人猛叫黄| 国产精品自拍偷拍视频| 国产小视频91| 亚洲国产成人爱av在线播放| 欧美激情图片区| 精品国产美女在线| 亚洲人成啪啪网站| 欧美富婆性猛交| 欧美日韩在线视频一区| 欧美在线视频观看| 欧美老女人在线视频| 国产欧美精品一区二区| 久久这里只有精品视频首页| 亚洲一区www| 96sao精品视频在线观看| 国产精品免费久久久| 成人两性免费视频| 久久不射热爱视频精品| 伊人久久久久久久久久久| 亚洲国产婷婷香蕉久久久久久| 国产主播欧美精品| 日韩成人在线观看| 亚洲18私人小影院| 久久久久久久999精品视频|