打印出所有数字1 - 1000,除了那些被100

时间:2017-10-30 00:41:31

标签: ruby loops conditional

我的练习要求返回所有数字1 - 1000,除了那些可被100整除的数字。

n = 1
1000.times do
  if n % 1 == 0
    if n % 100 == 0
      if n % 400 == 0
        p n
      else
      end
    else
      p n
    end
  else
  end
  n = n + 1
end

Numbers 400和800仍在打印。需要帮助了解为什么这不起作用。

4 个答案:

答案 0 :(得分:2)

不要使用Integer#times并自己跟踪n,请考虑使用Range#each,如下所示:

(1..1000).each do |n|
  puts n if n % 100 != 0
end

您也可以将阻止传递给Integer#times,但您应该知道n将从0开始,然后一直到Integer - 1

答案 1 :(得分:1)

你可以这样做:
创建介于1和1000之间的数字范围,并过滤掉那些可被100整除的数字。

$(document).ready(function(){

    // data[0] = "Tesla X"
    $("body").append('<div id="myCar" data-car="' + data[0] + '"></div>');

    $(document).on('click', '#save', function(e){  
        e.preventDefault(); 

        var page0    = $(this).data('car');  
        var page1    = $('body').find('[data-car]');
        var page2    = $('myCar').find('[data-car]');  
        var page3    = $(document.getElementById('[data-car]')); 
        var page4    = $('#body').find('.bottom').data('car');
        var page5    = $('body').find('.bottom').data('car');
        var page6    = $('body').find('[data-car]');
        var page7    = $('body').find('#myCar').data('data-car');
        console.log(page0);  // not working -> undefined 
        console.log(page1);  // not working -> Object { 0: <div#myCar>, length: 1, prevObject: Object } 
        console.log(page2);  // not working -> Object { length: 0, prevObject: Object } 
        console.log(page3);  // not working -> Object {  } 
        console.log(page4);  // not working -> undefined 
        console.log(page5);  // not working -> undefined 
        console.log(page6);  // not working -> Object { 0: <div#myCar>, length: 1, prevObject: Object } 
        console.log(page7);  // not working -> undefined 
    });

});

答案 2 :(得分:0)

这里有两个提示

  • 需要为此引入一个新变量。您可以使用范围提供给您的那个。

    1000.times do |i|
      # code
    end
    
  • 特别是在Ruby中,unless关键字作为否定if。想想这句话:&#34;除非我看到的变量可以被零整除,否则我想打印它。&#34;你可以用它来帮忙。你需要多个条件。

答案 3 :(得分:0)

确定。所以我相信我更好地理解了代码并删除了400及其相应的else / end。我相信这是正确的答案。谢谢你的帮助。刚开始学习Ruby。

n = 1

1000.times do
 if n % 1 == 0 
  if n % 100 == 0
          else
              p n
          end
        else
        end
n = n + 1 
end