2015-06-24 4 views
0

Я пытаюсь создать простую программу, которая запрашивает у вас 10 целых чисел, и программа автоматически добавит их все. Я всегда получаю сообщение об ошибке от Java, которое этаДобавление нескольких массивов java после

Исключение в потоке "основного" java.lang.ArrayIndexOutOfBoundsException: 55 на Sum2.main (Sum2.java:29)

Как я могу добавить несколько значений массива один раз? Я попытался с помощью

IntegerArray [0] + [1] .....

Но это все еще не работает, пожалуйста, помогите.

import java.util.Scanner; 


public class Sum2 { 

private static Scanner sc; 

public static void main(String[] args) { 

    int totalsum; 
    int[] integerArray = new int[11]; 

    sc = new Scanner(System.in); 

    System.out.println("Please enter your 10 integers : "); 

    integerArray[0] = sc.nextInt(); 
    integerArray[1] = sc.nextInt(); 
    integerArray[2] = sc.nextInt(); 
    integerArray[3] = sc.nextInt(); 
    integerArray[4] = sc.nextInt(); 
    integerArray[5] = sc.nextInt(); 
    integerArray[6] = sc.nextInt(); 
    integerArray[7] = sc.nextInt(); 
    integerArray[8] = sc.nextInt(); 
    integerArray[9] = sc.nextInt(); 
    integerArray[10] = sc.nextInt(); 

    totalsum = integerArray[0+1+2+3+4+5+6+7+8+9+10]; 

    System.out.println("The sum of the first 10 integers is: " +totalsum); 
        } 
} 
+0

Вы хотите, чтобы 'integerArray [0] + integerArray [1] + ...'. Теперь вы делаете добавление для индекса (0 + 1 + 2 ... + 10 = 55). – Kayaman

ответ

3
> totalsum = integerArray[0] 
    + integerArray[1] 
    + integerArray[2] 
    + integerArray[3] 
    + integerArray[4] 
    + integerArray[5] 
    + integerArray[6] 
    + integerArray[7] 
    + integerArray[8] 
    + integerArray[9]; 

Или

totalsum = 0; 
for(int i = 0; i < 10; i++) { 
    totalsum += integerArray[i]; 
} 

Кстати, ваш массив содержит 11 целых чисел, а не 10.


EDIT: (ответ на ваш комментарий)

О создании кода чище, это намного лучше, чем 10 раз с той же строкой:

System.out.println("Please enter your 10 integers : "); 
for(int i = 0; i < 10; i++) { 
    integerArray[i] = sc.nextInt(); 
} 
+0

Спасибо! Я попробовал первый метод, но забыл упомянуть, как сделать его более приличным и чистым, извините за это. – JCLeal

Смежные вопросы