Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 打印出所有1-1000的数字,除了那些可以被100整除的数字_Ruby_Loops_Conditional - Fatal编程技术网

Ruby 打印出所有1-1000的数字,除了那些可以被100整除的数字

Ruby 打印出所有1-1000的数字,除了那些可以被100整除的数字,ruby,loops,conditional,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 puts [*1..1000].reject{|n| n % 100 == 0} 400号

我的练习要求返回所有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
puts [*1..1000].reject{|n| n % 100 == 0}
400号和800号仍在印刷。需要帮助理解为什么这不起作用。

这里有两个提示:

  • 您不需要为此引入新变量。您可以使用该系列提供给您的

    1000.times do |i|
      # code
    end
    
  • 特别是在Ruby中,
    除非
    关键字用作否定的
    如果
    。想想这句话:“除非我看到的变量可以被零整除,否则我想打印它。”你可以用它来辅助。您不需要超过一个条件


而不是使用<代码>整数→倍< /代码>并跟踪<代码> N< /代码>自己,考虑使用类似的:


您也可以将一个块传递给,但是您应该知道,
n
将从
0
开始,直到
Integer-1
确定。因此,我相信我更了解代码,并删除了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
您可以这样做:
创建一个介于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
puts [*1..1000].reject{|n| n % 100 == 0}

你的代码清楚地表明,可以被400整除的数字(包括400和800)应该被打印出来。。。。如果n%400==0,为什么这行是
呢?你可以用
(1..10)打印数字1到10,除了那些可以被2整除的数字。每个{n | pn,除非n%2==0}
。将此用作模板。请澄清过滤后的数字是否应作为数组返回或在处理时打印?谢谢您的回复和帮助。它应该是在加工过程中打印出来的。我想我明白了。多亏了你。我删除了400个。非常感谢。我只是想知道为什么会包括400。谢谢你的帮助。这是一个Ruby初学者的练习。因此,我们还没有被介绍到您建议的流程中。我们将按原样运行程序。