ruby 條件和迴圈

2021-07-10 11:57:43 字數 4591 閱讀 8771

1.1 if…else 語句

if conditional [then]

code ...

elsif conditional [then]

code ...

end

值為false和nil為假,其他都為真。請注意關鍵字elsif。通常我們省略保留字then,但若想在一行內寫出完整的 if 式,則使用then。例子如下:

x=1

if x > 2

puts "x 大於 2"

elsif x <= 2

and x!=0

puts "x 是 1"

else

puts "無法得知 x 的值"

end

1.2 if修飾詞

code if condition

if修飾片語表示當 if 右邊之條件成立時才執行 if 左邊的式子。即如果 conditional 為真,則執行 code。例子如下:

$debug=1

print

"debug\n"

if $debug

1.3 unless 語句
unless conditional [then]

code

[else

code ]

end

unless式和 if式作用相反,即如果 conditional 為假,則執行 code。如果 conditional 為真,則執行 else 子句中指定的 code。例子如下:

x=1

unless x>2

puts "x 小於 2"

else

puts "x 大於 2"

end

1.4 unless 修飾符

code unless conditional

如果 conditional 為假,則執行 code。例子如下:

$var =  1

print

"1 -- 這一行輸出\n"

if $var

print

"2 -- 這一行不輸出\n"

unless $var

$var = false

print

"3 -- 這一行輸出\n"

unless $var

1.5 case語句
case expression

[when expression [, expression ...] [then]

code ]...

[else

code ]

end

case先對乙個 expression 進行匹配判斷,然後根據匹配結果進行分支選擇。

它使用 ===運算子比較 when 指定的 expression,若一致的話就執行 when 部分的內容。

通常我們省略保留字 then 。若想在一行內寫出完整的 when 式,則必須以 then 隔開條件式和程式區塊。

$age =  5

case

$age

when

0 .. 2

puts "嬰兒"

when

3 .. 6

puts "小孩"

when

7 .. 12

puts "child"

when

13 .. 18

puts "少年"

else

puts "其他年齡段的"

end

while conditional [do]

code

end# 或者

while conditional [:]

code

end

當 conditional 為真時,執行 code。語法中 do 或 : 可以省略不寫。但若要在一行內寫出 while 式,則必須以 do 或 : 隔開條件式或程式區塊。例子如下:

$i = 0

$num = 5

while

$i< $num

do puts("在迴圈語句中 i = #$i" )

$i +=1

end

2.2 while修飾符
code while condition

#或者begin

code

endwhile conditional

當 conditional 為真時,執行 code。如果 while 修飾符跟在乙個沒有 rescue 或 ensure 子句的 begin 語句後面,code 會在 conditional 判斷之前執行一次。例子如下:

$i = 0

$num = 5

begin

puts("在迴圈語句中 i = #$i" )

$i +=1

endwhile

$i< $num

2.3 until語句
until conditional [do]

code

end

當 conditional 為假時,執行 code。語法中 do 可以省略不寫。但若要在一行內寫出 until 式,則必須以 do 隔開條件式或程式區塊。例項如下:

$i = 0

$num = 5

until

$i > $num

do puts("在迴圈語句中 i = #$i" )

$i +=1;

end

2.4 until修飾符
code until conditional

#或者begin

code

enduntil conditional

當 conditional 為 false 時,執行 code。如果 until 修飾符跟在乙個沒有 rescue 或 ensure 子句的 begin 語句後面,code 會在 conditional 判斷之前執行一次。例項如下:

$i = 0

$num = 5

begin

puts("在迴圈語句中 i = #$i" )

$i +=1;

enduntil

$i > $num

2.5 for語句
for variable [, variable ...] in expression [do]

code

end

先計算表示式得到乙個物件,然後針對 expression 中的每個元素分別執行一次 code。例項如下:

for i in

0..5

puts "區域性變數的值為 #"

end

for…in 迴圈幾乎是完全等價於:

(expression).each

do |variable[, variable...]| code end

但是,for 迴圈不會為區域性變數建立乙個新的作用域。語法中 do 可以省略不寫。但若要在一行內寫出 for 式,則必須以 do 隔開條件式或程式區塊。例項如下:

(0.

.5).each

do |i|

puts "區域性變數的值為 #"

end

2.6 break語句
for i in

0..5

if i > 2

then

break

end puts "區域性變數的值為 #"

end

2.7 next語句
for i in

0..5

if i < 2

then

next

end puts "區域性變數的值為 #"

end

2.8 redo語句

重新開始最內部迴圈的該次迭代,不檢查迴圈條件。如果在塊內呼叫,則重新開始 yield 或 call。例項如下:

for i in

0..5

if i < 2

then

puts "區域性變數的值為 #"

redo

endend

2.9 retry 語句

如果 retry 出現在 begin 表示式的 rescue 子句中,則從 begin 主體的開頭重新開始。如果 retry 出現在迭代內、塊內或者 for 表示式的主體內,則重新開始迭代呼叫,迭代的引數會重新評估。

begin

do_something # 丟擲的異常

rescue

# 處理錯誤

retry

# 重新從 begin 開始

end

例項如下:

條件和迴圈語句

python條件語句是通過一條或多條語句的執行結果 true或者false 來決定執行的 塊。if 判斷條件 執行語句 else 執行語句 開始有縮排的概念 基本判斷語句 age 12 if age 18 print 18歲以下不宜 if語句後面必須有 自動縮排 if語句寫完後,要退回原有縮排繼續寫...

Golang 條件和迴圈

條件 迴圈要點 for,if後面的條件沒有括號 if條件裡也可以定義變數 沒有while switch不需要break,也可以直接switch多個條件 package main import io ioutil fmt switch會自動break,除非使用fallthrough 可以swich多條...

Ruby 迴圈結構

迴圈 1 while語句 適合任何型別迴圈的單純語句 while 條件do 反覆執行的動作 end 2 until語句 與while 相反,條件不成立時執行,實際上是 while 的 運算 until 條件do 重複執行的動作 end 3 for 語句for 變數in 開始的數值 結束的數值do 重...