我的练习要求返回所有数字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仍在打印。需要帮助了解为什么这不起作用。
答案 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