Hot

2012年7月18日 星期三

Ruby入門(3)

練習三:

程式碼:


puts "I will now count my chickens:"

puts "Hens",25+30/6           #母雞   ,代表什麼?
puts "Roosters",100-25*3%4    #公雞   %一樣是mod嗎?

puts "Now I will count my eggs:"

puts 3+2+1-5+4%2-1/4+6      #結合性??

puts "Is it true thar 3+2<5-7?"

puts 3+2<5-7

puts "what is 3+2?",3+2
puts "what is 5-7?",5-7

puts "oh,that's why it's false."

puts "How about some more."

puts "Is it greater?",5>-2
puts "Is it greater or equal?",5>=-2
puts "Is it less or equal?",5<=-2

結果:
結果沒問題,但過程很有問題阿!!!
Ruby運算子優先權到底為何?
http://www.ruby-lang.org/zh_TW/documentation/ruby-from-other-languages/to-ruby-from-c-and-c-/
這個網站解答我練習一(http://crazyinf.blogspot.tw/2012/07/ruby1.html)的疑惑,原來

首字大寫代表常數

這樣就不用加const了,而且

Ruby沒有++ --

問題一、  "  % "


再練習過程中,我發現    ,   在ruby不是連接,是像java中 int a,b;那種感覺,

如果 puts "hi",2 會印出
hi
2
由於puts會換行

而若要連接,則使用 puts "hi"+2,但會失敗,可以選擇以下兩種方法
1.改成 puts "hi"+"2"
2. puts "hi"+2.to_s                  #型態轉換  可以 p 2.to_s 確定型態
成功後會印出
 hi2

如果要重複印字串,可以使用 puts "hi"*2,就會印出
hihi


...我剛剛還在想for迴圈, ruby實在太神奇了


問題二、  "  %  "的使用

我試了  print 10%2+2
發現%優先權高於+且為mod
遇到同級(*  /)則優先權由左至右

問題三、  結合順序

可以打入irb進行測試(exit 跳出)

3+2+1-5+4%2-1/4+6

3+2+1-5+0-0+6            #若要1/4變小數則打入1/4.to_f

7

加分題:

1.每行前寫註解說明
#印出我將要數有幾隻雞
puts "I will now count my chickens:"
#印出母雞
#30隻
puts "Hens",25+30/6
=begin
印出公雞
97隻
=end
puts "Roosters",100-25*3%4
#印出我將要數有幾個蛋
puts "Now I will count my eggs:"
#有7個蛋
puts 3+2+1-5+4%2-1/4+6
#印出
puts "Is it true thar 3+2<5-7?"
#判斷句
puts 3+2<5-7
#印出
puts "what is 3+2?",3+2
#印出
puts "what is 5-7?",5-7
#印出
puts "oh,that's why it's false."
#印出
puts "How about some more."
#判斷句
puts "Is it greater?",5>-2
#判斷句
puts "Is it greater or equal?",5>=-2
#判斷句
puts "Is it less or equal?",5<=-2
2.寫個自己要算的.rb 印出

3.研究浮點數
後來發現要使用浮點數有兩種方式
1.將數值加上.to_f
2.直接加.0表示為浮點數

4.使用浮點數重寫一次
puts "I will now count my chickens:"
puts "Hens",25+30.0/6
puts "Roosters",100-25*3.0%4
puts "Now I will count my eggs:"
puts 3+2+1-5+4.0%2-1.0/4+6
puts "Is it true thar 3+2<5-7?"
puts 3+2<5-7
puts "what is 3+2?",3+2
puts "what is 5-7?",5-7
puts "oh,that's why it's false."
puts "How about some more."
puts "Is it greater?",5>-2
puts "Is it greater or equal?",5>=-2
puts "Is it less or equal?",5<=-2
可是雞有小數點個...


我學到了:

1.浮點數可用.0 或.to_f方式代表
2.%比+優先且成是由左而右
3.要多印一行可以使用" , "

感謝作者 = )

沒有留言:

張貼留言