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...