Ruby 意外返回(本地跳转错误)

Ruby 意外返回(本地跳转错误),ruby,Ruby,我刚开始学习Ruby…所以首先我试着写一个素数程序 这件事给了错误“意外返回” 任何帮助都会很好。谢谢。退货已预订。您不能将其用作变量名,也不能将其用作返回 我相信你的意思是put(“输入的是素数吗?{!returnVal}”)返回已保留。您不能将其用作变量名,也不能将其用作返回 我相信你的意思是put(“输入的是素数吗?{!returnVal}”)不要检查这个答案,亚当是第一个。但这里有更多的信息 正如亚当在回答中所说,问题是你说 def getPrime(testNumber) te

我刚开始学习Ruby…所以首先我试着写一个素数程序

这件事给了错误“意外返回”


任何帮助都会很好。谢谢。

退货
已预订。您不能将其用作变量名,也不能将其用作返回


我相信你的意思是
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}”