Java 程序生成一个错误,说明我的方法不适用于我的参数

Java 程序生成一个错误,说明我的方法不适用于我的参数,java,Java,我有下面一段代码,我已经看了一段时间了: import java.util.Scanner; public class SumExercise { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Input start value"); int start = scanner.n

我有下面一段代码,我已经看了一段时间了:

import java.util.Scanner;

public class SumExercise {  
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Input start value");
        int start = scanner.nextInt();
        System.out.println("Input end value");
        int end = scanner.nextInt();
        int sum = computeSum(start,end);
        System.out.println("Sum is of integers from "+start+" to "+
        end+" is "+sum);
        scanner.close();
    }
    public static void computeSum() {
        for(int i = start; i <= end; i++) {
            sum += i;
        }
    }
}

然而,我似乎无法让它和
computeSum(开始,结束)
进行“链接”。有什么我遗漏的吗?我的程序说这些参数不适用,但我不确定这意味着什么。很抱歉,我对编程很陌生。

我认为问题在于
开始
,您不能将其分配给
I
,而
求和
结束
也是如此。
您需要使它们成为全局变量,以便两个函数都能识别它们

我认为问题在于
开始
,您不能将其分配给
I
,而
求和
结束
也是如此。
您需要将它们设置为全局变量,以便两个函数都能识别它们

您需要将
计算值
更改为接受
开始
结束
,并且由于您分配了计算和的结果,因此它应该
返回
一个
int
总和
)。像

,应用高斯公式对自然数求和,如

public static int computeSum(int start, int end) {
    return sumN(end) - sumN(start);
}

private static int sumN(int n) {
    return ((n + 2) * (n + 1)) / 2;
}

您需要更改
computeSum
以接受
start
end
,并且由于您分配了计算总和的结果,它应该
返回
一个
int
sum
)。像

,应用高斯公式对自然数求和,如

public static int computeSum(int start, int end) {
    return sumN(end) - sumN(start);
}

private static int sumN(int n) {
    return ((n + 2) * (n + 1)) / 2;
}

嗯,是的。您正在尝试将参数传递给方法,但您的方法不接受任何参数
public static void computeSum(//paramshouldgohere){
。您还需要computeSum()返回某个值,但由于
void
而没有返回该值。是的,您试图将参数传递给您的方法,但您的方法不接受任何参数
public static void computeSum(//paramshouldGohere){
。您还需要computeSum()要返回某个东西,因为
void
我以前确实尝试过写'computeSum(int,int)'但它仍然产生了一个错误,我认为这完全是错误的!谢谢你的帮助。你能解释一下为什么“返回金额”是否需要?因为该方法设置为返回总和,因为它在方法名称之前有
int
,而不是
void
(答案第一句的第二部分)。因此,
返回总和;
。因为
int-sum=computeSum(开始,结束)
意味着您希望该方法返回
一个
int
。在您提问之前,请阅读。谢谢你们两位的回答!我确实曾经尝试过编写“computeSum(int,int)”,但它仍然产生了一个错误,我认为这完全是错误的!谢谢您的帮助。您能解释一下为什么“return sum;”是否需要?因为该方法设置为返回总和,因为它在方法名称之前有
int
,而不是
void
(答案第一句的第二部分)。因此,
返回总和;
。因为
int-sum=computeSum(开始,结束)
意味着您希望该方法返回
一个
int
。在询问之前,请先阅读。谢谢你们的回答!
public static int computeSum(int start, int end) {
    return IntStream.rangeClosed(start, end).sum();
}
public static int computeSum(int start, int end) {
    return sumN(end) - sumN(start);
}

private static int sumN(int n) {
    return ((n + 2) * (n + 1)) / 2;
}