【发布时间】:2016-04-23 14:26:13
【问题描述】:
我正在尝试获取一个数字并返回一个字符串,其中包含任何奇数周围的破折号。此外,字符串不应以破折号开头或结尾。
我写了以下内容,但它没有返回任何内容:
def dasherize_number(num)
string = num.to_s
i = 0
while i<string.length
if (string[i].to_i % 2) != 0
string[i] = '-' + string[i] + '-'
end
i += 1
end
if string[0] == '-'
string.pop(1)
end
if (string.length - 1) == '-'
string.pop(1)
end
string
end
如果我理解正确,它似乎在无限循环;控制台不显示任何输出,除非我刷新,否则不允许我做任何其他事情。我已经按每个字符查看了代码,但我不知道哪里出了问题。
【问题讨论】:
-
正如作者在他/她的问题中提到的,该方法已在控制台中调用。 @ hac13 请参阅下面的答案。问题似乎出在
while循环中。 -
@Uzbekjon OP 在哪里说该方法已在控制台中调用?
-
我不太确定“调用”一个方法是什么意思,但如果它意味着运行它 - 我已经输入了 'dasherize_number(4567)' 并且控制台不允许我做很多其他事情
-
@hac13 你必须在问题中写下。
-
糟糕。对不起。以后会记得这样做。
标签: ruby