Java 为什么我的程序不考虑将用户输入的值相加。?

Java 为什么我的程序不考虑将用户输入的值相加。?,java,for-loop,Java,For Loop,我试图制作一个程序,从用户那里得到一个整数。 将从1到该数字的所有数字相加,并显示总数。下面是我编写的程序,问题是sum不能将用户输入的值相加 import java.util.Scanner; public class AddingValuesForLoop { public static void main(String[] args) { int Number,Sum; Sum=0; Scanner keyboard=ne

我试图制作一个程序,从用户那里得到一个整数。 将从1到该数字的所有数字相加,并显示总数。下面是我编写的程序,问题是sum不能将用户输入的值相加

import java.util.Scanner;

public class AddingValuesForLoop
{
    public static void main(String[] args) 
    {
        int Number,Sum;
        Sum=0;
        Scanner keyboard=new Scanner(System.in);
        System.out.println("Enter your Number: ");
        Number=keyboard.nextInt();
        for (int i=1;i<=Number;i++) 
        {
            Sum=i+Number;
            System.out.println("\r"+i+"");
        }
        System.out.println("the total Sum = "+Sum+".");
    }
}
import java.util.Scanner;
公共类添加值forloop
{
公共静态void main(字符串[]args)
{
整数,和;
总和=0;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入您的号码:”);
Number=键盘.nextInt();

对于(int i=1;i,您的问题在这一行:

Sum=i+Number;
这一行意味着您的总和将包含循环中的最后一个i值和用户输入的数字,它应该如下所示:

Sum += i;
然后将用户输入的数字添加到总和值中,您的代码如下所示:

import java.util.Scanner;

public class AddingValuesForLoop{
    public static void main(String[] args) {
        int Number,Sum;
        Sum=0;
        Scanner keyboard=new Scanner(System.in);
        System.out.println("Enter your Number: ");
        Number=keyboard.nextInt();
        for (int i=1;i<=Number;i++) {
            Sum +=i;
            System.out.println("\r"+i+"");
        }
        Sum+=Number;
        System.out.println("the total Sum = "+Sum+".");
    }
}
import java.util.Scanner;
公共类添加值forloop{
公共静态void main(字符串[]args){
整数,和;
总和=0;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入您的号码:”);
Number=键盘.nextInt();
对于(int i=1;i,因为您使用

Sum=i+Number;
在这段代码中,这意味着得到i的值和number的值,并将它们相加,然后在每次没有求和的情况下将它们放入sum var中 你应该使用

Sum += i+Number;
也就是说
Sum=Sum+(i+Number);

2您的程序有问题

首先,在每次迭代中重置Sum的值。因此,在最后一次迭代中,i值为5,Number值为5,因此输出为10

第二,你想把数字从1加起来,所以应该是这样的: sum=sum+i; 如果用户输入3
(sum=0+1,sum=1+2,sum=3+3),因此输出将为6。

您应该编写sum=i+sum,而不是sum=i+Number。以下是完整代码

import java.util.Scanner;

public class AddingValuesForLoop{
    public static void main(String[] args) {
        int Number,Sum;
        Sum=0;
        Scanner keyboard=new Scanner(System.in);
        System.out.println("Enter your Number: ");
        Number=keyboard.nextInt();
        for (int i=1;i<=Number;i++) {
            // Add i to sum until now
            Sum=Sum+i;
        }
        System.out.println("the total Sum = "+Sum+".");
    }
}
import java.util.Scanner;
公共类添加值forloop{
公共静态void main(字符串[]args){
整数,和;
总和=0;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入您的号码:”);
Number=键盘.nextInt();

对于(int i=1;我在循环中打印出
Sum
,看看它是否具有它应该具有的值。(另外,在Java中,变量名应该以小写字母开头,比如
Sum
,而不是
Sum
),并且绝对不要阴影(重复使用)java.lang包中的名称,比如。它可能会导致各种混淆。(我也不会在其他常见包中隐藏名称,比如java.util或java.io)。如果您所做的只是将每个迭代值的值求和,然后得到所提供的数字,那么只需使用:
sum+=i;
或者长路径:
sum=sum+i;
不要费心尝试添加所提供的整数值(数字)在每次迭代中。因此,如果提供的值为5,那么总和将最终为15。当然,除非我读错了你的帖子。请告诉我为什么?试试看。好的,但请修复
sum+=sum
错误。