?與!的慣例

 

※ 說明 :  ? / ! 表示會回傳Boolean值
■ 題型 :     練習
◎ 參圖 : notepad打上下列內容 > 存 fcb.rb
□  array=[2,1,3]

□  puts array.empty? # false   #自補puts
□  puts array.sort # [1,2,3]   #自補puts

□  puts array.inspect # [2,1,3]  #自補puts

□  puts array.sort! # [1,2,3]    #自補puts
□  puts array.inspect # [1,2,3]   #自補puts
022-01a
◎ 參圖 : 開DOS模式 > ruby fcb.rb  > 執行結果正確
022-01b

方法定義Methods

 

※ 說明 : 每中程式都會有相關的程序要走,而取決其方法,如數值運算程序中,有全取捨全進.四捨五入等不同的計算方法,因此定義其方法是肯定的.使用方法 def ~ end
■ 題型 :  def ~ end   練習
◎ 參圖 : notepad打上下列內容 > 存 dem.rb
□  def say_hello(name)
□    result = “Hi, " + name
□    return result
□  end

□  puts say_hello(‘ihower’)
□  # 輸出 Hi, ihower
021-01a◎ 參圖 : 開DOS模式 > ruby dem.rb  > 執行結果正確
021-01b

◎ 參圖 : notepad打上下列內容 > 存 dem1.rb
□  def say_hello(name)
□    result = “Hi, " + name   # result 省略
□    return result                    # return result 省略
□  end

□  puts say_hello ( ‘ihower’ )  # 括號省略
□  # 輸出 Hi, ihower                     # 以上省略,執行結果相同
021-02a
◎ 參圖 : 開DOS模式 > ruby dem1.rb  > 執行結果正確
021-02b

正規表示法Regular Expressions

 

※ 說明 : 使用=~
■ 題型 :  =~   練習
◎ 參圖 : notepad打上下列內容 > 存 csp.rb
□  # 抓出手機號碼
□  phone = “123-456-7890″
□  if phone =~ /(d{3})-(d{3})-(d{4})/
□    puts ext  = $1  #自補puts
□    puts city = $2  #自補puts
 □  puts num  = $3  #自補puts
□  puts phone        #自補
□  end
020-01a
◎ 參圖 : 開DOS模式 > ruby  csp.rb  > 執行結果正確
020-01b

真或假

 

■ 題型 : 真或假判斷  練習
◎ 參圖 : notepad打上下列內容 > 存 tfn.rb
□ puts “not execute" if nil
□ puts “not execute" if false

□ puts “execute" if true # 輸出 execute
□ puts “execute" if " " # 輸出 execute (和JavaScript不同)  #" “用剪貼法是會有提示訊息!!
□ puts “execute" if 0 # 輸出 execute (和C不同)
□ puts “execute" if 1 # 輸出 execute
□ puts “execute" if “foo" # 輸出 execute
□ puts “execute" if Array.new # 輸出 execute
019-06g
◎ 參圖 : 開DOS模式 > ruby tfn.rb  > 執行結果正確
.019-06h

 

迴圈 while, loop, until, next and break

 

(1)while / next
■ 題型 : while / next 練習
◎ 參圖 : notepad打上下列內容 > 存 fcwn.rb
□ i=0
□ while ( i < 10 )
□   i += 1
□   next if i % 2 == 0 #跳過雙數
□   puts i # 自補
□ end
019-06a
◎ 參圖 : 開DOS模式 > ruby fcwn.rb  > 執行結果正確
019-06b
(2)loop / break
■ 題型 : loop / break 練習
◎ 參圖 : notepad打上下列內容 > 存 fclb.rb
□  i = 0
□  loop do
□  i += 1
□    break if i > 10 # 中斷迴圈
□    puts i # 自補
□  end
019-06c
◎ 參圖 : 開DOS模式 > ruby fclb.rb  > 執行結果正確
019-06d
(3)until
■ 題型 : until 練習
◎ 參圖 : notepad打上下列內容 > 存 fcu.rb
□  i = 0
□  i += 1 until i > 10
□  puts i # 輸出 11
019-06e
◎ 參圖 : 開DOS模式 > ruby  fcu.rb  > 執行結果正確
019-06f

★◎ 後記: next (while / next 練習)and break(loop / break 練習)

 

控制結構Case

 

■ 題型 : Case 練習
◎ 參圖 : notepad打上下列內容 > 存 cas.rb
□ name = “Theresa"  # 自補
□ case name
□     when “John"
□       puts “Howdy John!"
□     when “Ryan"
□       puts “Whatz up Ryan!"
□     else
□       puts “Hi #{name}!"
□ end
019-05a
◎ 參圖 : 開DOS模式 > ruby  cas.rb  > 執行結果正確
.019-05b

 

三元運算子

■ 題型 : 三元運算子    練習
◎ 參圖 : notepad打上下列內容 > 存 tf.rb
□ x = 3
□ if x > 3
 □ puts y = “foo" #自補 puts
□ else
□   puts y = “bar" #自補 puts
□ end
019-04a
◎ 參圖 : 開DOS模式 > ruby tf.rb  > 執行結果正確
019-04b
■ 題型 : 簡式三元運算子    練習
◎ 參圖 : notepad打上下列內容 > 存 tfs.rb
□ x = 3
□ puts y = ( x > 3 )? “foo" : “bar"  #自補 puts
019-04c
◎ 參圖 : 開DOS模式 > ruby tfs.rb  > 執行結果正確
019-04d

控制結構 If / elsif 判斷式

 

(2)控制結構If /  elsif
(2-1) if
■ 題型 : if 練習,執行單行,可將if置行末
◎ 參圖 : notepad打上下列內容 > 存 fc2e.rb
□ total =100 #範例沒有宣告變數值,執行出現錯誤`<main>’: undefined local variable or method `total’ for main:Object(NameError)
□ puts “greater than ten" if total > 10


◎ 參圖 : 開DOS模式 > ruby fc2e.rb  > 執行結果正確
.019-02be

(2-1) elsif
■ 題型 : elsif 練習
◎ 參圖 : notepad打上下列內容 > 存 fcse.rb
□ total = 100 #範例沒有宣告變數值, `<main>’: undefined local variable or method `account’ for main:Object (NameError)
□ if account.total > 100000 #範例account刪除
□ puts “large account"
□ elsif account.total > 25000 #範例account刪除
□ puts “medium account"
□ else
□ puts “small account"
□ end
.019-03ae
◎ 參圖 : 開DOS模式 > ruby fcse.rb  > 執行結果正確
.019-03be

 ★◎ 後記: if / elsif 都欠缺宣告變數值,致使依據作者範例實作,並沒有辦法如作者所寫般的顯示出「正確資料」,經詢問後,if範例第一行補上 「total = 100」;elsif亦是補上 「total = 100」並將account.total的「account.」刪掉,即可了。

 

流程控制Flow Control – 比大小判斷式

 

(1)比較方法
※ 說明 : 比較數值真假
■ 題型 : 數值比較練習
◎ 參圖 : notepad打上下列內容 > 存 fc1.rb
□  puts 1 > 2 # 大於 (false)
□ puts 1 < 2 # 小於(true)
□ puts 5 >= 5 # 大於等於(true)
□ puts 5 <= 4 # 小於等於(false)
□ puts 1 == 1 # 等於(true)
□ puts 2 != 1 # 不等於(true)

□ puts ( 2 > 1 ) && ( 2 > 3 ) # 和(false)
□ puts ( 2 > 1 ) || ( 2 > 3 ) # 或(true)
.019-01a
◎ 參圖 : 開DOS模式 > ruby fc1.rb  > 執行結果正確
.019-01b

 

字串符號Symbols

 

※ 說明 : 識別符號 :冒號為之,取代常出現的字串,如 “字串" 可改成 :字串
■ 題型 : 識別符號練習
◎ 參圖 : notepad打上下列內容 > 存 sy.rb
□ config = { :foo => 123, :bar => 456 }
□ puts config[:foo] # 輸出 123
.018-15a
◎ 參圖 : 開DOS模式 > ruby sy.rb  > 執行結果正確
.018-15b
■ 題型 : 識別符號提升執行效率練習
◎ 參圖 : notepad打上下列內容 > 存 syup.rb
□  puts “foobar".object_id # 2151854740
□  puts “foobar".object_id # 2151830100
□  puts :foobar.object_id # 577768
□  puts :foobar.object_id # 577768
.018-16c
◎ 參圖 : 開DOS模式 > ruby syup.rb  > 執行結果是正確
.018-16d

後記: 原本依據作者範例實作,並沒有如作者所寫般的顯示出「內部的記憶體配置編號」經詢問後,每行多補上 puts,即可了。

□  puts “foobar".object_id # 2151854740
□  puts “foobar".object_id # 2151830100
□  puts :foobar.object_id # 577768
□  puts :foobar.object_id # 577768