我是一名新程序员,并尝试制作一个将所有用户输入数字相加的程序。这是代码:
import java.util.Scanner;
import java.io.*;
public class Adding
{
private int numOfInt, newInt;
/**
* Constructor for objects of class Adding
*/
public Adding()
{
// initialise instance variables
Scanner console = new Scanner( System.in );
System.out.print("How many integers will be added?");
numOfInt = console.nextInt();
newInt = 0;
}
public int addIntegers()
{
int count = 0;
int sum = 0;
while( count <= numOfInt )
{
System.out.println("The count is: " + count + " and the current sum is: " + sum);
count = count + 1;
Scanner console = new Scanner( System.in );
System.out.println("Enter an integer: ");
newInt = console.nextInt();
sum = sum + newInt;
}
return sum;
}
public void displaySum()
{
System.out.println("the sum is " + this.addIntegers());
}
}
这是主要的第二类:
import java.util.Scanner;
import java.io.*;
public class AddingMain
{
public static void main( String[] args )
{
Adding add = new Adding();
add.addIntegers();
add.displaySum();
}
}
但是,循环重复两次(如下面的输入所示,已进行编辑以节省空间),实际上忽略了输入的第一组数字:
将添加多少个整数?3
计数为:0,当前总和为:0
输入一个整数:1
计数为:1,当前总和为:1
输入一个整数:2
计数为:2并且当前总和为:3
输入一个整数:3
计数为:3并且当前总和为:6
输入一个整数:1
计数为:0,当前总和为:0
输入一个整数:2
计数为:1,当前总和为:2
输入一个整数:3
计数为:2并且当前总和为:5
输入一个整数:4
计数为:3并且当前总和为:9
输入整数:5
总和是14
有人可以解释为什么会这样以及如何解决吗?谢谢!
最佳答案
该循环重复两次,因为您两次调用addIntegers()
。
您第一次通过编写addIntegers()
调用add.addIntegers();
下次您通过写addIntegers()
调用System.out.println("the sum is " + this.addIntegers());
时。this.addIntegers()
再次调用方法addIntegers()
。
额外建议
您可以通过仅在类级别实例化Scanner对象来使用扫描器对象,即您无需在代码中实例化两次扫描器对象。
你可以这样
public class Adding
{
private int numOfInt, newInt;
Scanner console = new Scanner( System.in );
关于java - 运行程序时,循环重复两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38806448/