我在这里的第一篇文章,我会尽量保持清楚。
我的问题是编写一个sum方法并从main方法调用它。首先,要求用户输入起始值,然后逐步输入。然后,程序应将两者之间的所有整数相加。
示例:如果用户拳头输入4,然后输入6,则输出应为 4 + 5 + 6 + 7 + 8 + 9→39
我的主要方法
Scanner input = new Scanner(System.in);
System.out.println("Startvalue: ");
int start = input.nextInt();
System.out.println("Steps: ");
int finish = input.nextInt();
finish = start + finish;
我的求和方法:
public static void sum(int start, int finish) {
if (start <= finish) {
for (int i = start; i < finish; i++) {
int sum = start + finish;
System.out.print(i++);
}
}
}
现在,没有输出,但是程序运行没有错误。 我认为我的循环有问题吗?
答案 0 :(得分:2)
1)您的主函数没有运行任何循环
2)您的循环确实是错误的。阅读此逻辑
如果用户先输入4,然后输入6,则输出应为4 + 5 + 6 + 7 + 8 + 9
然后就在您的脑海中,思考一下它的作用,并希望您会意识到自己从未达到7、8、9 ,并且您正在输入步骤,而不是完成值,因此因此您应该能够输入5和2步。我的观点是if语句没有道理
for (int i = 4; i < 6; i++){
话虽如此,我建议使用while循环,您需要在循环外输出最终变量
// input: start and steps
int sum = start;
while (steps > 0) {
start += 1;
sum += start;
steps--;
}
// print or return the sum
最后,请确保您确实使用值调用sum(start, finish)
答案 1 :(得分:0)
这是给您的代码,分析您错过了什么:
import java.util.Scanner;
public class SumWithStep {
static int sum =0;
public static void main( String args[] )
{
Scanner input = new Scanner(System.in);
System.out.println("Startvalue: ");
int start= input.nextInt();
System.out.println("Steps: ");
int finish= input.nextInt();
finish = start+finish;
sum(start,finish);
System.out.print (sum);
}
public static void sum(int start, int finish){
if (start<=finish){
for (int i = start; i < finish; i++){
sum= sum + i;
}
}
}
}