通话总和方法

时间:2019-05-01 13:26:41

标签: java

我在这里的第一篇文章,我会尽量保持清楚。

我的问题是编写一个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++);
        }
    }
}

现在,没有输出,但是程序运行没有错误。 我认为我的循环有问题吗?

2 个答案:

答案 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; 

            }
        }
    }


}