Ruby入門(2) 基本流程控制

2021-09-06 04:13:04 字數 3131 閱讀 8001

(一)條件判斷

條件判斷為基本式:

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