2013-11-27 4 views
0

В настоящее время я изучаю Java, и я застрял на некоторых циклах, которые я понятия не имею, как они работают.Нужна помощь в понимании петель

код выглядит следующим образом:

int sum = 0, maximum = number[0], minimum = number[0]; 
for (int i = 0; i < number.length; i++) { 
    sum += number[i]; 
    if (maximum < number[i]) { 
     maximum = number[i]; 
    } 
    if (minimum > number[i]) { 
     minimum = number[i]; 
    } 
} 

Так что мои вопросы:

  1. Что int sum = 0, maximum = number[0], minimum = number[0] делать? Делает ли цикл запуском от 0?

  2. в цикле for, что такое number.length; делать?

  3. Что делает сумма + = номер [i] и почему требуется [i]?

  4. То же самое в циклах if, которые проверяют максимальные/минимальные значения, почему существует [i] за номером?

+8

Нет такой вещи, как «цикл if». –

+1

http://www.learnjavaonline.org/ было бы хорошим местом для начала – reto

+2

Вам следует пройти основной учебник. – Maroun

ответ

0

1. Что такое int sum = 0, maximum = number [0], minimum = number [0] do? Заставляет ли цикл начинаться с 0?

(Обратите внимание, что эта линия не оказывает никакого влияния на цикл, который поставляется в следующем.)

Эта строка инициализирует sum, maximum и minimum к 0, number[0] и number[0] соответственно.
Обратите внимание, что эта линия является обобщающим для:

int sum = 0; 
int maximum = number[0]; 
int minimum = number[0]; 

2. в цикле for, что число number.length; делать?

number.length длина массива number, то есть количество int значений, хранящихся в массиве number.

3. Что делает сумма + = число [i] и почему требуется [i]?

Он увеличивает sum от number[i].
number[i] - значение i-го int, хранящееся в массиве int number. Здесь i называется индексом .

4. То же самое в if ..., которое проверяет максимальные/минимальные значения, почему существует [i] за номером?

Здесь также i является индексом, чтобы сказать, что вы хотите, я-го значения в массиве number.

(Кстати, также считают

maximum = Math.max(maximum, number[i]); 
minimum = Math.min(minimum, number[i]); 

вместо двух if условий.)

+0

Спасибо за объяснение, и да, я имел в виду цикл. Был смущен при публикации. – user3042022

2

Эта линия:.

int sum = 0, maximum = number[0], minimum = number[0]; 

Объявляет три переменные (sum, maximum и minimum) типа int и инициализирует их с некоторыми значениями (0, number[0] и number[0] соответственно

number кажется быть массивом (возможно, int[]), что означает, что он содержит несколько int.

number.length просто возвращает количество элементов в number.

number[i] возвращает элемент в позиции i в массиве (точно так же, как number[0] возвращает элемент в позиции 0, a.k.a - первый элемент).

Так что большая часть вашего замешательства, по-видимому, вызвана незнанием того, что такое массивы.

См. this tutorial для стартера.

+3

Интересно отметить, что объявление нескольких переменных в одной строке не рекомендуется, см. [Соглашения Java Code Conventions] (http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141270. html # 2992) – sp00m

1

Что делает int sum = 0, maximum = number [0], minimum = number [0] do? Заставляет ли цикл начинаться с 0?

Это объявляет 3 Int переменные (сумма, максимальное и минимальное) + инициализирует их

в цикл, что делает number.length; делать?

Он получает длину номера массива

Что сумма + = число [я] делать и почему это [я] нужен?

sum += number[i] также можно записать в виде: sum = sum + number[i] += называется прединкремента. [i] необходима потому, что она относится к определенному индексу в массиве чисел

То же самое в случае петли, которые проверить максимальное/минимальное значения, почему есть [я] за номером?

Потому что вы получаете номер по индексу i в массиве numbers.

0

петля представляет собой петлю. Если это условие.

int sum = 0, maximum = number[0], minimum = number[0]; 

это создает и инициализирует 3 переменные int: сумма, максимум и минимум.

номер.length является частью конечного условия для этого цикла. До тех пор, как я < number.length верно, это looop будет выполнен

номер [] представляет собой массив

sum+=number[i] 

это добавляет значение числа [I], чтобы подвести [I] является ячейка массива - я получает новый номер каждый цикл:

int i = 0; i < number.length; i++ 

так начинается с 0, увеличивается на 1, и это будет сделано, пока я ниже number.length.

так number[i] будет number[0] в первой итерации цикла, то число [1], то количество [2] и так далее

0

Я думаю, вы имеете в виду "цикл". Начнем с синтаксиса цикла for.

for (int i = 0; i < number.length; i++) { 
    your code here.... 
} 

«int i=0» часть объявляет «фантомного» целочисленную переменную, что означает, что она существует только в том, что если петли; когда петли заканчиваются, компилятор «отбрасывает» эту переменную. Начальное значение i равно 0.

Затем у вас есть часть ;i < number.length;. Эта часть выражает, что «запускайте цикл до тех пор, пока я не достигнет номера массива.

Наконец,« i++ »определяет длину шага, насколько больше (или меньше) будет после каждого прогона. В этом случае i ++ означает i = i + 1 .

Таким образом, в резюме. Ваш цикл начинается с инициализации счетчика, а затем решает, как большой счетчик, вы хотите запустить итерации и, наконец, сколько вы будете увеличивать этот счетчик.

Я должен обратите внимание, что это один из основных материалов, и книга или руководство будут полезны для вас. В противном случае вам нужно будет как

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