Ruby控制結(jié)構(gòu)應(yīng)用總結(jié)
Ruby語言作為一種新型的編程語言,具有很多獨(dú)有的特性。它也擁有其他語言所具備的一些特性,比如擁有所幫助的常用控制語句。#t#
Ruby控制結(jié)構(gòu)都是常用的,像if語句和while循環(huán)。Java,C,和Perl程序會因?yàn)檎Z句體中缺少花括號而出錯。替代的,Ruby使用關(guān)鍵字end來表示語句體的結(jié)束。#t#
- if count > 10
- puts "Try again"
- elsif tries == 3
- puts "You lose"
- else
- puts "Enter a number"
- end
類似的,Ruby控制結(jié)構(gòu)while語句也是使用end結(jié)束。
- while weight < 100
and num_pallets <= 30- pallet = next_pallet()
- weight += pallet.weight
- num_pallets += 1
- end
Ruby中大部分的聲明都有一個返回值,你可以使用它作為條件語句。例如,gets方法從標(biāo)準(zhǔn)輸入流中返回下一行或者當(dāng)?shù)竭_(dá)文件末尾時返回nil。因?yàn)樵跅l件語句中Ruby把nil看成是false,你可以使用下面的代碼來處理文件的所有行。
- while line = gets
- puts line.downcase
- end
這里,這個聲明設(shè)置變量line的值為下一行或nil,然后while檢測這個變量,當(dāng)它為nil時結(jié)束循環(huán)。
當(dāng)if或while聲明只有一行代碼時,Ruby的代碼修飾符是一個有用的簡化。只需要在Ruby控制結(jié)構(gòu)表達(dá)式后面寫上簡單的條件語句。例如,下面是一個簡單的if代碼愉。
- if radiation > 3000
- puts "Danger, Will Robinson"
- end
再一次這個代碼,使用代碼修飾符重寫它。
puts "Danger, Will Robinson" if radiation > 3000
Ruby控制結(jié)構(gòu)while循環(huán)類似的代碼如下:
- square = 2
- while square < 1000
- squaresquare = square*square
- end
變得更簡潔
- square = 2
- squaresquare = square*square
while square < 1000
這個Ruby控制結(jié)構(gòu)代碼修飾符和Perl程序看起來比較熟悉。