ruby 語句和控制結構

2021-06-04 07:30:28 字數 2865 閱讀 8552

1、條件式

if expression

code

end

可以加then,或者換行符

例:

if x < 10

x += 1

endif x<10 then

x+=1

end

if...else....形式

if expression

code

else

code

end

elsif形式

if expression1

code1

elsif expression2

code2

......

elsif expressionn

coden

else

code

end

例子:

x = argv[0].to_i

if x==1

name = "one"

elsif x==2

name = "two"

elsif x==3 then name="three"

elsif x==4 then name="four"

else

name="nothing"

endputs name

在ruby中,一切都是表示式,包括那些通常稱為語句的控制結構。if語句的返回值就是被執行**中最後乙個表示式的值,如果沒有執行任何**,則返回nil

x = argv[0].to_i

name = if x==1

"one"

elsif x==2

"two"

elsif x==3 then "three"

elsif x==4 then "four"

else

"nothing"

endputs name

unless 語句與if語句相似。

2、case語句

case語句也可返回值

x = argv[0].to_i

name = case

when x ==1 then "one"

when x==2 then "two"

when x==3 then "three"

when x==4 then "four"

else "nothing"

endputs name

x = argv[0].to_i

name = case x

when 1

"one"

when 2 then "two"

when 3

"three"

when 4 then "four"

else

"nothing"

endputs name

上述**其實等價於:

x = argv[0].to_i

name = case

when 1 === x then "one"

when 2 === x then "two"

when 3 === x then "three"

when 4 === x then "four"

else

"nothing"

endputs name

===: class類將===定義為測試其右側運算元是否為其左側運算元所命名的乙個例項;range類將===定義為測試其右側運算元是否位於其左側運算元的範圍之類;regexp類將===定義為器右側運算元是否匹配左側運算元所指定的模式,symbol類將===定義為測試符號或字串的相等性。

x = argv[0].to_i

puts case x

when string then "string"

when fixnum then "fixnum"

when trueclass,falseclass then "boolean"

else

"other"

end

3、while迴圈

x = 10

while x>=0 do

puts x

x -= 1

end

將while作為分隔符

x = 0

puts x = x+1 while x<10

4、for/in迴圈

可以對乙個可列舉物件(陣列)進行迭代

for var in collection do

body

end

例:

array = [1,2,3,4,5]

for i in array do

puts i

end

例:

hash = 

for key,value in hash do

puts "# : #"

end

上述例子也可用迭代器實現

hash = 

hash.each do |key,value|

puts "# => #"

end

迴圈的for版本與each版本的唯一區別在於:跟在迭代器之後的**會定義乙個新的變數作用域。

C 控制結構和語句

例4.1 includeint main f和 lf分別是float型別和double型別用於格式化輸入輸出時對應的格式符號。其中 float,單精度浮點型,對應 f.double,雙精度浮點型,對應 lf.在用於輸出時 float型別可以使用 lf格式,但不會有任何好處。double型別如果使用了...

Ruby快速入門(三) 控制語句

這個系列的第一篇文章 說了ruby的安裝和執行,也簡單的說了下類和物件,第二篇文章 說了變數 陣列 數字和運算子。這裡則說ruby中的控制邏輯。先看條件語句 if語句的格式為 ruby view plain copy if條件 elseif 條件 else end ruby也支援c c 中的三元運算...

Ruby快速入門(三) 控制語句

這個系列的第一篇文章 說了ruby的安裝和執行,也簡單的說了下類和物件,第二篇文章 說了變數 陣列 數字和運算子。這裡則說ruby中的控制邏輯。先看條件語句。if語句的格式為 view plain if條件 elseif 條件 else end ruby也支援c c 中的三元運算子 判斷式?1 2 ...