2015-03-21 2 views
0

Какой фрагмент кода вычисляет сумму всех элементов в четных позициях в массиве?Использование списка массивов

a) int sum = 0; 
for (int i = 1; < values.length; i+=2) 
{ 
sum++; 
} 

b) int sum = 0 
for (int i = 0; i < values.length; i++) 
{ 
sum++; 
} 

c) int sum = 0; 
for (int i = 0; i < values.lengthl; i++) 
{ 
sum +=values [i]; 
} 

d) int sum = 0; 
for (int i = 0; i < values.length; i + 2) 
{ 
sum +=values [i]; 
} 

все они правильные? потому что для моего ответа я получил

int sum = 0; 
for (int i = 0; i < values.length; i += 2) 
{ 
sum +=values [i]; 
} 

это мой ответ правильный? или это один из нескольких вариантов?

+1

В чем разница между вашим ответом и ответом D? – KSFT

+0

мой ответ «values.length; i + = 2» для d его «values.length; i + 2) – user3288334

+0

А, я вижу. Вы уверены, что это не опечатка? – KSFT

ответ

1

Ни один из этих ответов не отвечает на вопрос. Вот фрагмент кода, который будет вычислять сумму всех четных элементов массива values.

int sum = 0; 
for (int i = 1; i < values.length; i = i + 2) { 
    sum +=values [i]; 
} 

Вы должны увеличивать переменную i цикла на 2, чтобы просуммировать только четные элементы. Также обратите внимание, что я предполагаю, что первое равно позиция вторая позиция в массиве, которая равна values[1].

0

Небольшая коррекция, в которой вы используете массив в своем коде. ArrayList отличается от Array. ArrayList не имеет собственности length, это собственность Array. Я думаю, что ответ добавлен Tim Biegeieisen подходит для массива.

Similary, Вы можете сделать то же самое для списка массива, как это -

int count=0; 
int sum=0; 
for(Integer i : values){ 
    if(count%2==0){ 
     sum = sum+i; 
    } 
    count++; 
} 
System.out.println(sum); 

И здесь значения является ArrayList из Integer. Обратите внимание, что вы не можете поставить int или любой другой примитивный тип в ArrayList. Таким образом, вы можете объявить ArrayList используемые здесь (то есть values), как -

List<Integer> values = new ArrayList<Integer>(); 

Надеется, что это поможет.
Спасибо.

0

A и B не добавляют элементы массива в sum; B и C обрабатывают все элементы. Поэтому, если какой-либо из них правильный, это должно быть D. Но так как D не меняет i, это тоже не так.

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