基础练习:循环语句和条件语句的组合使用

一、需求

写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”

二、思路

1.使用each方法进行循环
2.在each循环中使用条件语句进行判断
3.根据不同的条件,输出相应的内容

三、实现方法

1.使用each方法进行循环,使用if-elsif-else语句进行条件判断

(1..100).each do |i|
if i%3 == 0 &&  i%5 ==0
  p "FizzBuzz"
elsif i%3== 0
  p "Fizz"

elsif i%5 ==0
  p "Buzz"

else
  p i
end

end

上述代码也可以写为:

(1..100).each do |i|
  if i%3 == 0
    if i%5 == 0
      p "FizzBuzz"
    else
    p "Fizz"
    end
  elsif i%5 == 0
    p "Buzz"
  else
    p i
  end
end

但不能写成:

(1..100).each do |i|
if I%3 == 0
 p "Fizz"

elsif I%5== 0
  p "Buzz"

elsif i%3 == 0 &&  i%5 ==0
  p "FizzBuzz"

else
  p i
end

end

虽然看上去我们只是把先判断是否能被15整除的这段代码进行了一个简单的位置移动,但是整个代码逻辑就变了。
例如有一个集合[1,2,3,5,15],满足条件则被去除
如果先判断能否被15整除,那么可以找到15;然后将15去除,接着再判断能否被3整除和能否被5整除。
但如果先判断能否被3整除,那么找到了3,15;然后将15去除,接着再判断能否被15整除,会发现找不到15了
这两个案例的逻辑是一样的。

四、运行效果

基础练习:循环语句和条件语句的组合使用_第1张图片
Snip20180306_1.png

你可能感兴趣的:(基础练习:循环语句和条件语句的组合使用)