Ruby 递增数字,但跳过第一次

Ruby 递增数字,但跳过第一次,ruby,Ruby,我需要设置一个循环来增加一个变量,但第一次不这样做。这是密码,我知道我很接近,所以我希望得到一些指导 offset = 0 while do if offset = 0 nil else offset += 1 end end 您的尝试存在许多问题。首先,如果offset=0,您的语句没有检查offset是否等于零,而是将其设置为零。要检查是否相等,请使用==: 其次,即使您解决了第一个问题,您的条件的else也不会触发,因为offset始终为零,因此不会增

我需要设置一个循环来增加一个变量,但第一次不这样做。这是密码,我知道我很接近,所以我希望得到一些指导

offset = 0
while do 
  if offset = 0 
    nil
  else
    offset += 1 
  end 
end

您的尝试存在许多问题。首先,如果offset=0,您的语句
没有检查
offset
是否等于零,而是将其设置为零。要检查是否相等,请使用
==

其次,即使您解决了第一个问题,您的条件的
else
也不会触发,因为
offset
始终为零,因此不会增加

第三,如果在
if
块中没有任何事情可做,则不需要将
nil
,只需直接跳到
else

  if offset == 0 
  else
    offset += 1 
  end
更好的是,只需否定表达式并完全跳过
else

  if offset != 0 
    offset += 1 
  end
另外,
whiledo
不是有效的Ruby构造。您可以编写类似于
的内容,而true do
或使用
循环do

更一般地说,如果您需要在偏移量增加之前执行某些代码,只需将该代码放在偏移量增加之前:

offset = 0
loop do 
  # your code goes here

  offset += 1 
end
这里有一个更“红宝石般”的方法:

0.step do |offset|
  # your code goes here
end
希望这有帮助

0.step do |offset|
  # your code goes here
end