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