为什么我的变量不能将其值保留在循环之外

时间:2014-03-08 17:07:24

标签: grails groovy

我已经用Java编程了一段时间,我决定尝试学习Groovy。我正在经历项目的欧拉问题,而第一个问题我已经注意到了一些奇怪的事情。

class Problem1
{
    public static void main(String[] args)
    {
        def multiple = 1;
        for(i in 1..1001)
        {
            //if it is divisible by three then multiply is
            if(i%3 ==0)
            {
               multiple = multiple * i;
            }

            if(i%5 ==0)
            {
                multiple = multiple * i;
            }
            holder = multiple
        }

        println(multiple)
    }
}

我的多重值设置不正确。一切都在循环内部按预期工作,但是当我尝试打印我的值时,我得到0.它甚至不打印我最初设置变量的1。我不希望这发生在Java中。为什么会在Groovy中发生?我认为groovy应该像Java一样。

1 个答案:

答案 0 :(得分:0)

你正在溢出一个整数(就像在Java中一样)

尝试通过更改

来使用BigInteger
def multiple = 1;

def multiple = 1G