大家好,我是小K。今天的進度是以下4個習題。
Exercise 4: Variables And Names
Exercise 5: More Variables And Printing
習題3主要練習數學運算式,常見的加減乘除、取餘數、大小比較等等。Ruby的數字運算和印出也是非常簡單。比如要做一個簡單的四則運算:
puts 1 + 2 * 3 / 5
一樣不用分號。它就會幫你印出。其他的運算也是比照辦理。如果要加字串後面接運算結果,只要在字串後面加個「逗點」,然後寫上運算式就好。
puts "Question 5 + 2 = ?", 5+2
寫到這邊大家應該也都知道比較大小要怎麼寫了吧?(笑)沒錯!也是直接寫。
puts "Is 5 biger than 2 ?", 5 > 2
這個章節的範例就是大量的輸出和數學運算囉~
3.1習題-在每一行的上面寫上註解
註解版本已push上Github。
https://gist.github.com/56a4bedd1cd5f00b0d08.git
3.2 打開IRB,玩玩計算機~(自己亂解釋)
3.3 自己寫一份rb檔,計算任何你想計算的東西。
所以我直接寫BMI計算程式,順便練了練後面的if判斷式。
關於if的寫法,我就在後面的章節在一起提出。今天先跳過囉~
3.4 有沒有發現某個答案是錯的? 查一下甚麼是「浮點數」?
BMI計算就有練習到這部分。不過我也把ex3.rb的數字都改成浮點數了。
那Exercise3的部分就到這邊拉~往下是Exercise4的部分。
這章的習題主要是練習變數的宣告。其實也不太需要練習,動態語言的變數通常不需要特別宣告,例如PHP,在前面架上$字號,型態就根據所賦予的值或運算式去決定,而ruby更簡單,什麼都不用加,記得給他名字就好了!(笑)
要在字串中印出變數,就在變數的前後加上{},前括號前面加個#字號。
number = 4
"There are #{number} apples."
以下是這章範例練習。
4.1 它問了這行錯誤訊息是什麼意思?
ex4.rb:8:in `<main>': undefined local variable or method `car_pool_capacity' for main:Object (NameError)
於是我試著把那行變數註解掉,然後就出現了上面這行錯誤訊息。
有此可推(或是錯誤訊息直接就指出),找不到那個variable,或是名稱打錯了~
Exercise4的部分就到這邊!往下是Exercise5囉~
這個部分,英文版和中文版的範例練習有點不一樣。英文版是是直接在字串中插入變數,就像剛剛上面所提到的。
而中文版這邊,寫出新的印法。在變數前面,加上%。比如:
name = "K-Peggy"
puts "My name is " % name
如果要印出多個變數或是要做相關運算時,要用[ ]刮起來,變數之間用逗號隔開。
puts "My age is %d and heught is %d" % [age,height]
有寫過C的人大概很熟悉這樣的寫法,是的,就是格式化印出,但要注意的部分就是,變數和%中間一定空一個空白鍵。
5.4 試著寫一隻程式,將英吋和磅,轉換成公分和公斤。
*這部分我在練習的時候,曾經出現一些問題。就是上面有提到,有多變數或是需要做運算時,需要用[]刮起來。但那時候我還不清楚,所以卡在這部分已一下子。
如果是下面這樣寫的話,它只會計算英吋轉公分,而且輸出會怪怪的。
將運算式刮起來,就可以正常運算了~
那Exercise5到這邊囉~呼!終於到今日最後一個進度-Exercise6了!
Exercise6主要也是在練習變數印出的部分。還以提到連結字串的寫法-「+」
W = "My name is ";
E = "Peggy.";
puts W+E
Exercise6範例練習
https://gist.github.com/3a904cb85805ca1f8d59.git
有些習題我就沒有一一打上來了,因為時間不太夠(笑)。
今天就到這裡~明天見囉!
程式碼同步分享於Github:https://github.com/peggy110336/ruby_hard_way
By 小K