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;
}