(一)條件判斷
條件判斷為基本式:
if expression
code
end表示式如果不是
false
或nil
,則可執行
code
部分,所以對於
else
來說,如果為
false
或nil
,則else
下的**是要執行的。要注意的是表示式與執行**之間要有分界符:例如換行或分號或是
then
關鍵字。
多條件分支情況下,除了可以用
else if
之外,可以用省略式:
elsif
if expression1
code1
elsif expression2
code2
else
code3
end
如果通過
then
做為分界符:
if expression then code end
,那麼可以把
if直接做為分界符:
code if expression
,這時,
if稱為表示式修飾符。先寫執行再寫執行條件。要注意的是:如果成為表示式修飾符,則執行**與
if之間不能帶換行符。雖然這種方式也是一種條件句,但我覺得它更像一種修飾。 對於
if判斷來說,它可以返回執行**後的值。 與
if條件類似,還有
unless
判斷,它和
if相反。 在
c#中,多分支語句有個
switch case
開關,在
ruby
中,則是
case when
。case when
非常靈活。
(二)迴圈
迴圈條件是
while do
或until do
,而位於它們之間的是迴圈體。
現條件if相似,迴圈語句也可以用分界符的形式做緊湊迴圈,這時,省略了換行符和
end。
x=1puts x,x+=1
while x<10
while x<20
doputs x
x+=1
end
在c#中有for
迴圈應用非常廣泛,在
ruby
中,for
迴圈與foreach
的作用類似,用於對可列舉物件進行迭代。
for var in collection do
code
end其中
collection
是帶有each
迭代方法的物件;
do關鍵字可選(可以用換行符或分號替代)。
arr=%w[123
456] for item in arr
print item<<" "
endhash1=
for key,value in hash1
print "#=#"<<" "
end
(三)迭代器和列舉
除了迴圈控制
while
、for
、until
外,有種特殊的方法用於迴圈,也就是迭代器,它是
ruby
最重要的特性之一。
(1
)數值迭代器
upto
:為乙個區間內的所有整數呼叫其關聯的**塊。左邊為起始,右邊為結束。
downto
:與upto
相反。
times
:呼叫關係的**一定的次數,且把0到
n-1傳遞給**。
step
:以一定的步長,迭代增加到指定數值。第二個引數為步長。 1
.upto(5) "}
puts
5.downto(1) "}
puts
3.times "}
puts
3.step(5,0.5) "}
(2
)列舉迭代器
each
:將迭代元素傳遞給**。
collect
:為呼叫它的列舉的每個元素執行關聯**後,組合到一起做為乙個陣列返回。
select
:為呼叫它的列舉的每個元素執行關聯**後,如果為真,組合到一起做為乙個陣列返回。
reject
:與select
相反。它把為
false
或nil
的元素做為乙個資料返回。
inject
:求累積值迭代。通過兩個引數呼叫關聯**塊,第乙個引數是前次呼叫**塊的累積值,第二個引數指呼叫進行迭代的下乙個元素。如果有傳遞引數,則做為第乙個引數的初始值,如果沒有,則把第一次進行迭代的元素值做為初始值。
a1=[1,2,3]
a2=a1.map
a3=a2.collect
print a2,a3
#o偶數
a5=a1.select
print a5
a6=a1.reject
print a6
puts
a7=a1.inject
puts a7
a8=a1.inject(10)
puts a8
流程控制語法2
1.for語句 for variable in argument list do command list done 2.while語句 while expression do command list done 3.until 語句 until expression do command list...
2 程式流程控制
程式流程控制 順序結構 順著 書寫規律,自上而下執行語句。判斷結構 if語句 三種表現形式 1 if 條件表示式 2 if 條件表示式 3 if 條件表示式 執行語句 執行語句 執行語句 else else if 執行語句 執行語句 else 結果 選擇結構 switch語句 格式 switch 表...
C 流程控制2
for迴圈 語法 for 表示式1 表示式2 表示式3 表示式1一般為宣告迴圈變數,記錄迴圈的次數 int i 0 表示式2一般為迴圈條件 i 10 表示式3一般為改變迴圈條件的 使迴圈條件終有一天不再成立 i 執行過程 程式首先執行表示式1,宣告了乙個迴圈變數用來記錄迴圈的次數,然後執行表示式2,...