显示具有5个索引的数组的总和

时间:2014-10-13 18:26:20

标签: java arrays

这是一个非常简单的应用程序,我在其中声明一个包含5个元素的数组。我使用增强的for循环来迭代数组的长度。我为下一个号码的用户输入导入了一个Scanner对象,然后我计算了总和。但总和显示0,这不是应用程序输出的结果。这是应用程序:      //应用程序创建一个数组,该数组将包含5个索引并询问每个索引号的用户输入      //在控制台窗口中计算并显示索引的总和。

 import java.util.Scanner;

 public class FindSum
 {
 public static void main (String [ ] args)
 {
 Scanner input = new Scanner(System.in);
        int [ ]  number = new int [ 5];   // instantiate the array

        int sum = number[0];//initialize sum to array index 0
        System.out.print("Enter number: " );//prompt for user input
        for (int i:number)//uses enhanced for loop
        {
           number[i] = input.nextInt();//reads input
           if(i<number.length)//evaluates condition
           {
           System.out.print("Enter next number: ");//prompt for next input number

           }else
           sum += number[i];//initializes sum to number array

          }//end enhanced for loop
       System.out.println("\nThe sum is " +sum);
 }//end method main

 }//end class FindSum

2 个答案:

答案 0 :(得分:3)

将增强型for循环更改为常规for循环

for (int i = 0; i < number.length; i++)

问题是number仅包含0,因此循环的每次迭代都会将0分配给i。此外,您需要删除您的逻辑

// if(i<number.length)//wouldn't be in loop body if condition weren't true.
// {
System.out.print("Enter next number: ");//prompt for next input number
// }else
sum += number[i];//add number to sum.

答案 1 :(得分:0)

只需在用户输入值时更新总和:

    System.out.print("Enter next number: ");//prompt for next input number
    sum += input.nextInt();

您的代码目前只是将您输入的最后一个数字(第5个数字)放入数组中,因为之前的数字已被删除。

你的for循环需要是一个正常的循环才能更新你的数组。目前,我将始终为0,因为您的数组在创建时用0&#39;进行初始化。因此,每次调用for循环时,它将使用0表示i。因此,else语句将永远不会运行,它将继续将用户输入的当前值放在第0位。

最后,你应该有一个for循环:

for (int i = 0; i < number.length; i++)//uses enhanced for loop
{
    System.out.print("Enter next number: ");//prompt for next input number
    number[i] = input.nextInt();//reads input

    sum += number[i];//initializes sum to number array

 }//end enhanced for loop