Ruby on Rails Friday, September 11, 2015


On 2015-Sep-11, at 11:00 , Nick Savage <nick.savage@gmail.com> wrote:

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:



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

No comments:

Post a Comment