我编写了以下代码,通过控制台输入接受用户的整数。该代码应该将正整数从一个添加到用户选择的数字以产生总和。例如,如果用户输入5,则输出应为15(1 + 2 + 3 + 4 + 5)。出于某种原因,我写的这段代码最终会输出用户输入的任何值的平方。也就是说,4的用户输入结果为16,等等。这显然是错误的。如果你有任何可以帮助我解决这个问题的见解,我当然会很感激。非常感谢!
import java.util.Scanner;
public class OneDashSix{
public static void main(String[] args){
//Create a new scanner object
Scanner input=new Scanner(System.in);
//Receive user input
System.out.print("Enter an integer for which you would like to find the arithmetic sum: ");
int myNumber=input.nextInt();
int sum = 0;
//Calculate the sum of the arithmetic series
for(int i=1; i<=myNumber; i=i++)
{
sum=sum+myNumber;
}
//Display the results to the console
System.out.println("The sum of the first " +
myNumber + " positive integers is " + sum + ".");
}
}
答案 0 :(得分:4)
这一行
sum=sum+myNumber;
需要
sum=sum+i;
编辑:对于它的价值......最快的方法就是放弃循环:
sum = (myNumber * (myNumber + 1)) / 2;
答案 1 :(得分:1)
替换
for(int i=1; i<=myNumber; i=i++)
与
for (int i = 1; i <= myNumber;i++)
停止无限循环。