Ruby 意外返回(本地跳转错误)
我刚开始学习Ruby…所以首先我试着写一个素数程序 这件事给了错误“意外返回”Ruby 意外返回(本地跳转错误),ruby,Ruby,我刚开始学习Ruby…所以首先我试着写一个素数程序 这件事给了错误“意外返回” 任何帮助都会很好。谢谢。退货已预订。您不能将其用作变量名,也不能将其用作返回 我相信你的意思是put(“输入的是素数吗?{!returnVal}”)返回已保留。您不能将其用作变量名,也不能将其用作返回 我相信你的意思是put(“输入的是素数吗?{!returnVal}”)不要检查这个答案,亚当是第一个。但这里有更多的信息 正如亚当在回答中所说,问题是你说 def getPrime(testNumber) te
任何帮助都会很好。谢谢。
退货
已预订。您不能将其用作变量名,也不能将其用作返回
我相信你的意思是
put(“输入的是素数吗?{!returnVal}”)代码>返回
已保留。您不能将其用作变量名,也不能将其用作返回
我相信你的意思是put(“输入的是素数吗?{!returnVal}”)代码>不要检查这个答案,亚当是第一个。但这里有更多的信息
正如亚当在回答中所说,问题是你说
def getPrime(testNumber)
temp1=testNumber -1;
bIsPrime = false;
while (temp1 > 1) do
bIsPrime = ((testNumber % temp1) == 0)
puts("Check 1 #{((testNumber % temp1) == 0)}, temp1=#{temp1} ");
if ($bIsPrime)
break;
else
temp1 = temp1-1;
end
end
return bIsPrime
end
puts("Enter any number to know if it's Prime or not");
testNumber = gets()
returnVal = getPrime(Integer(testNumber));
puts("Is enternered number Pime? #{return}");
发生了什么事
Ruby计算#{foo}
构造中的任何内容——如果它位于插值字符串中,例如
放置“1+1=#{1+1}”
==>>将打印1+1=2
然后将结果值转换(强制)为字符串
在您的例子中,您让ruby计算return
语句,这在上下文中没有任何意义。因此出现了一条稍微奇怪的错误消息。不要检查这个答案,亚当是第一个。但这里有更多的信息
正如亚当在回答中所说,问题是你说
def getPrime(testNumber)
temp1=testNumber -1;
bIsPrime = false;
while (temp1 > 1) do
bIsPrime = ((testNumber % temp1) == 0)
puts("Check 1 #{((testNumber % temp1) == 0)}, temp1=#{temp1} ");
if ($bIsPrime)
break;
else
temp1 = temp1-1;
end
end
return bIsPrime
end
puts("Enter any number to know if it's Prime or not");
testNumber = gets()
returnVal = getPrime(Integer(testNumber));
puts("Is enternered number Pime? #{return}");
发生了什么事
Ruby计算#{foo}
构造中的任何内容——如果它位于插值字符串中,例如
放置“1+1=#{1+1}”
==>>将打印1+1=2
然后将结果值转换(强制)为字符串
在您的例子中,您让ruby计算return
语句,这在上下文中没有任何意义。因此出现了一条略显奇怪的错误消息。虽然您已经得到了答案,但我认为在这里删除此消息会有所帮助,它遵循了您在代码中使用的相同想法:
puts("Is enternered number Pime? #{return}");
虽然您已经有了答案,但我认为将其放在这里会有所帮助,它遵循了您在代码中使用的相同理念:
puts("Is enternered number Pime? #{return}");
欢迎来到堆栈溢出。记住对你觉得有用的答案进行投票。请务必“勾选”最能回答您问题的答案。您可能想看看Ruby内置的Prime库。欢迎来到Stack Overflow。记住对你觉得有用的答案进行投票。请务必“勾选”最能回答您问题的答案。您可能想看看Ruby内置的Prime库。谢谢drep:)我正在寻找您的答案。。但我对你的回答还有其他疑问。。。1.“是素数吗?”添加一个?函数名之后有什么区别吗?2.##有什么用?非常感谢您的回复:)(1)使用?最后对结果没有任何影响,您可以在这里阅读更多关于此(和bang(!)方法的内容:(2)第一个#只是一个普通字符串,因此它显示Check#1。。。检查#2。最后一件事,虽然我很感谢你选择我的答案,但我的答案并不是一个真正的答案,而是一个补充,这样你就可以看到如何以更像ruby的方式编写代码,应该选择Adam或Larry的。如果你能改变它,就这么做,否则下次请记住,我很高兴能帮上忙:)谢谢,德雷普:)我在找你的答案。。但我对你的回答还有其他疑问。。。1.“是素数吗?”添加一个?函数名之后有什么区别吗?2.##有什么用?非常感谢您的回复:)(1)使用?最后对结果没有任何影响,您可以在这里阅读更多关于此(和bang(!)方法的内容:(2)第一个#只是一个普通字符串,因此它显示Check#1。。。检查#2。最后一件事,虽然我很感谢你选择我的答案,但我的答案并不是一个真正的答案,而是一个补充,这样你就可以看到如何以更像ruby的方式编写代码,应该选择Adam或Larry的。如果您可以更改,请这样做,否则请记住,以备下次使用,并很高兴我能提供帮助:)是的。对不起,我的意思是“${!returnVal}”是的。对不起,我的意思是“${!returnVal}”