Okay I started with Learn the hard way with ruby.
My code is below and below each code is my question.
I guess I do not understand the identifiers because when I do them in my head they dont add up.
Any help would be appreciative and the way I learn I can not move on till I know.
puts “I will now count my chickens:'”
puts “Hens #{25 + 30 / 6}”
#how does that equal 30?
puts “Roosters #{100 - 25 * 3 % 4}”
#How does this equal 97
puts “Now I will count the eggs:”
puts 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
#How does this equal 7, is it because it is 6.5 and it rounds up.
rab
(Rob Biedenharn)
September 11, 2015, 3:23pm
2
Okay I started with Learn the hard way with ruby.
My code is below and below each code is my question.
I guess I do not understand the identifiers because when I do them in my head they dont add up.
Any help would be appreciative and the way I learn I can not move on till I know.
This is just barely a Ruby issue. Most operator precedence is the same as you’d expect just from math:
http://ruby-doc.org/core-2.2.3/doc/syntax/precedence_rdoc.html
puts “I will now count my chickens:'”
puts “Hens #{25 + 30 / 6}”
#how does that equal 30?
25 + (30/6)
25 + 5
30
puts “Roosters #{100 - 25 * 3 % 4}”
#How does this equal 97
100 - (25 * 3 % 4)
100 - ((25 * 3) % 4) # same precedence, do them left-to-right
100 - ( 75 % 4)
100 - ( 3 ) # 75 % 4 is the remainder after 75/4
100 - 3
97
puts “Now I will count the eggs:”
puts 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
#How does this equal 7, is it because it is 6.5 and it rounds up.
Here you have to add a fact (behavior) common to many programming languages: “integer division truncates to an integer ”
3 + 2 + 1 - 5 + (4%2) - (1/4) + 6
3 + 2 + 1 - 5 + ( 0 ) - ( 0 ) + 6 # then do the + and - left-to-right
5 + 1 - 5 + ( 0 ) - ( 0 ) + 6
6 - 5 + ( 0 ) - ( 0 ) + 6
1 + ( 0 ) - ( 0 ) + 6
1 - ( 0 ) + 6
1 + 6
7
Very simple. Perhaps you’re over-thinking it?
-Rob
Scott_Ribe
(Scott Ribe)
September 11, 2015, 4:34pm
3
Google "ruby operator precedence". Multiplication & division have higher precedence than addition & subtraction, is the answer to your immediate question. But you really should google and look at all the precedence categories.