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