Ruby .times .upto .downto等偏移打印值

问题描述

|| 有没有一种方法可以抵消已在代码块中传递的值。 例如 C#-这将始终打印5
for (int i = 0; i < 10; i++)
{
  i=5
  Console.WriteLine(i);
}
红宝石-这将只打印5次10次。
10.times do |i|
  i = 5
  puts i
end
有没有办法获得| i |?回到5? 还有另一个问题。如何使.times块跳过(不一直增加1)     

解决方法

        不可以,您无法从块内重置
times
upto
等的计数器。 您可以使用
redo
重新启动循环的当前迭代,在这种情况下,将具有类似的效果:
10.times do |i|
  i = 5
  puts i
  redo
end
这将永久打印5(尽管请注意,
i
的初始值在每次迭代时仍为still7ѭ)。 如果需要更多控制,则需要使用
while
循环。尽管我建议大多数情况下您认为需要这样做,但实际上并不需要,只是从错误的角度解决问题。     ,        您可以根据需要使用\'next \'关键字来跳过迭代。
10.times do |i|
  next if i < 5
  puts i
end
您也可以按照sepp2k的描述使用关键字\'redo \'。     ,        这将打印5个值十次。
 i=5
 10.times{puts i}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...