ruby改變控制流

2021-07-02 04:29:33 字數 1790 閱讀 3858

1、return:無論return語句位於巢狀得多深的**塊中,它總會使得外圍方法返回。

[ruby]view plain

copy

def double x  

return

nilif x==nil

return x, x.dup  #返回乙個陣列[a,a]

endresult = double("a")  

puts result  

return 使整個函式返回,不僅僅是迭代器。

例:[ruby]view plain

copy

#從陣列中找到目標數

def find(array,target)  

array.each_with_index do |element,index|  

return index if (element == target)  

endnil

enda = [1,2,3]  

puts find(a,3)   # 2

2、break:只能出現在乙個詞法上的外圍迴圈或**塊裡。break可帶返回值。

[ruby]view plain

copy

while(line = gets.chop)  

break

if line == "quit"

puts line  

endputs "goodbye"

3、next等價於continue

[ruby]view plain

copy

#計算陣列中數的平方根,如果哦小於0,則返回0

arry = [-1,-2,1,2,3]  

sqr = arry.collect do |x|  

next 0 if x<0  

math.sqrt(x)  

endprint sqr  

上述**等價於:

[ruby]view plain

copy

sqr2 = arry.collect do |x|  

if x<0 then 0  

else

math.sqrt(x)  

endend

print sqr2  

4、redo

[ruby]view plain

copy

# output   0123

i = 0  

while i<3  

print i  

i += 1  

redo

if i == 3  

end

[ruby]view plain

copy

puts "please enter thie first word you think of"

response = words.collect do |word|  

print word + "> "

response = gets.chop  

if response.size == 0  

word.upcase!  

redo

endresponse  

end

企業會改變ruby 還是Ruby改變企業

貼出了幾個月,都沒有人理睬的帖子 這面高人多,請討論之,因為原文就是論壇中整理出來的。infoq上的話題還是認真嚴肅的,不用pk的字眼 img 11 july 2006 martin fowler 可能都熟悉,他的中文blog上 企業級rails 企業級ruby 是一回事嗎?英文 martin fo...

python控制流教程 python控制流

1.if.elif.else 語法 if 判斷條件 語句.elif 判斷條件 語句.else 語句.elif語句可以有0個或多個 2.while和for迴圈 while 判斷條件 語句.for iterating var in sequence statements s 可以在while迴圈體中巢狀...

mysql流控制 mysql 控制流函式

ifnull expr1,expr2 如果 expr1 為非 null 的,ifnull 返回 expr1,否則返回 expr2。ifnull 返回乙個數字或字串值 mysql select ifnull 1,0 1 mysql select ifnull null,10 10 如果 expr1 e...