有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么这段代码在结果中加1?

如果if (n > 0)它返回一个正常结果,但是if (n >= 0)它返回正常结果+1,这我不理解,因为0*0=0。如果有人知道为什么会这样,我很想弄清楚

import java.util.*;

// Recursive method returns sum of first n squares
public class RecursiveSum
{
    public static void main(String[] args)
    {
        while (true)
        {
            Scanner keyboard = new Scanner(System.in);

            System.out.println("Enter a number:\tIf you want to exit, enter a negative number.");

            int n = keyboard.nextInt();

            if (n < 0)
                System.exit(0);

            System.out.println("sum(" + n + ") = " + sum(n));
        }
    }

    public static int sum(int n)
    {
        int sum2 = n * n;

        if (n >= 0)
            sum2 += sum(n - 1);

        return sum2;
    }
}

共 (0) 个答案