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

首頁 > 編程 > Ruby > 正文

ruby 流程控制 方法

2020-02-24 15:41:38
字體:
來源:轉載
供稿:網友
這章我們將討論更多的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???nil
ruby>?print?"#{i+=1}/n"?while?i1
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
亚洲精品720p| 欧美激情视频一区| 97欧美精品一区二区三区| 亚洲日韩中文字幕| 精品亚洲一区二区三区在线播放| 国产精品爱啪在线线免费观看| 尤物九九久久国产精品的分类| 91亚洲精华国产精华| 亚洲www在线| 亚洲风情亚aⅴ在线发布| 96sao精品视频在线观看| 亚洲国产精品高清久久久| 久久国产精品视频| 国产香蕉精品视频一区二区三区| 中文字幕精品一区久久久久| 欧美一级淫片videoshd| 欧洲美女7788成人免费视频| 欧美性xxxxxxxxx| 色在人av网站天堂精品| 91欧美精品成人综合在线观看| 久久久久久久久久久免费| 亚洲石原莉奈一区二区在线观看| 久久精品在线视频| 亚洲老司机av| 69影院欧美专区视频| 日韩电影在线观看中文字幕| 狠狠躁夜夜躁久久躁别揉| 欧美激情视频免费观看| 成人欧美一区二区三区在线| 久热爱精品视频线路一| 亚洲一区二区在线播放| 亚洲国产日韩欧美综合久久| 亚洲第一福利在线观看| 国产精品福利久久久| 一本大道香蕉久在线播放29| 日韩高清av一区二区三区| 久久影院资源网| 国产一区二区日韩| 亚洲成人av中文字幕| 懂色av中文一区二区三区天美| 午夜免费在线观看精品视频| 蜜臀久久99精品久久久无需会员| 久久av在线播放| 国产精品影片在线观看| 久久全国免费视频| 国产欧美日韩免费看aⅴ视频| 久久精品电影一区二区| 久久久精品在线观看| 精品人伦一区二区三区蜜桃免费| 久久亚洲精品成人| 51视频国产精品一区二区| 欧美高清电影在线看| 久久精品99国产精品酒店日本| 亚洲综合最新在线| 青青青国产精品一区二区| 亚洲精品久久久久中文字幕二区| 午夜精品久久17c| 久久精品电影一区二区| 国产一区二区三区日韩欧美| 国产亚洲欧美日韩美女| 不卡在线观看电视剧完整版| 欧美丰满少妇xxxxx做受| 亚洲成人激情小说| 精品国产乱码久久久久久婷婷| 亚洲国产精品va在线观看黑人| 欧美激情精品久久久久久蜜臀| 精品视频在线观看日韩| 欧美亚洲另类制服自拍| 亚洲精品成人av| 中文日韩在线视频| 日韩av在线免费观看| 欧美国产视频一区二区| 国产精品香蕉在线观看| 97av在线视频| 黄网站色欧美视频| 欧美日韩黄色大片| 久久99国产精品自在自在app| 亚洲九九九在线观看| 亚洲爱爱爱爱爱| 日韩中文字幕视频在线| 69视频在线免费观看| 亚洲黄色片网站| 日韩在线高清视频| 国产精品亚洲欧美导航| 国产国语刺激对白av不卡| 精品无人国产偷自产在线| 日韩欧美主播在线| 色小说视频一区| 亚洲a区在线视频| 欧美日韩xxx| 国产最新精品视频| 久精品免费视频| 久久人人爽人人爽人人片亚洲| 国产成人精品国内自产拍免费看| 久久国产一区二区三区| 欧美一级淫片aaaaaaa视频| 国产精品久久久久久久久久东京| 成人激情av在线| 亚洲欧美在线看| 亚洲精品成人久久电影| 亚洲天堂精品在线| 国产精品人成电影| 日韩av在线免费看| 日韩欧美国产视频| 亚洲无限乱码一二三四麻| 狠狠色狠色综合曰曰| 国产精品pans私拍| www.欧美视频| 日韩女优人人人人射在线视频| 日韩中文字幕网| 亚洲在线观看视频网站| 欧美成年人视频网站欧美| 永久免费毛片在线播放不卡| 中文字幕日韩在线视频| 精品久久国产精品| 日本精品一区二区三区在线播放视频| 亚洲色图欧美制服丝袜另类第一页| 在线观看国产精品日韩av| 欧美日韩美女在线观看| 日韩美女在线观看一区| 在线看日韩av| 国产精品久久久久7777婷婷| 成人激情黄色网| 国产精品丝袜久久久久久高清| 国内免费久久久久久久久久久| 国产aⅴ夜夜欢一区二区三区| 在线观看国产欧美| 日韩免费在线观看视频| 亚洲性生活视频| 国产精品自拍偷拍视频| 国产日韩欧美日韩| 亚洲一区二区三区视频| 中文字幕久久久| 91av视频在线免费观看| 成人欧美一区二区三区黑人孕妇| 人人做人人澡人人爽欧美| 国产欧美精品va在线观看| 色妞在线综合亚洲欧美| 亚洲天堂av女优| 亚洲国产精品悠悠久久琪琪| 国产成人精品午夜| 黄色一区二区在线| 91精品国产亚洲| 国产中文字幕日韩| 亚洲全黄一级网站| 日本精品性网站在线观看| 色综合久综合久久综合久鬼88| 精品日本高清在线播放| 国产成人福利视频| 欧美日韩福利在线观看| 欧美成人高清视频| 亚洲精品wwwww| 精品久久久久人成| 亚洲xxx自由成熟| 6080yy精品一区二区三区| 亚洲精品白浆高清久久久久久| 国产精品久久久久久久久借妻| 一区二区三区高清国产| 成人精品一区二区三区| 欧美日韩午夜激情| 亚洲国产精品嫩草影院久久| 在线性视频日韩欧美| 日韩综合中文字幕| 欧美一级电影免费在线观看|