美文网首页
基础练习:循环语句和条件语句的组合使用

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

作者: 稻草人_b788 | 来源:发表于2018-03-06 11:57 被阅读47次

    一、需求

    写一个程序打印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了
    这两个案例的逻辑是一样的。

    四、运行效果

    Snip20180306_1.png

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/olylfftx.html