【发布时间】:2016-12-12 21:14:53
【问题描述】:
我是一名新程序员,并试图制作一个添加所有用户输入数字的程序。代码如下:
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调用的次数。 -
另外,通过在while循环中使用
<=,当numOfInt为3时,你执行了4次。你可能打算使用<。