2015-05-06 2 views
-2

Добрый день всем. Итак, завтра я получил экзамен по программированию Java, и я получил учебное пособие для экзамена, на которое я скорее застрял. У меня есть эта проблема, которую я хотел бы, если возможно, объяснить кому-то результат?Для пояснения цикла

public class FinalProb { 
    public static void main(String[]junk) { 
    int[] huskey = {1, 8, 5}; 
    int beagle = 0; 
    for (int k = 0; k < huskey.length; k++) { 
     beagle += huskey[ k ]; 
     System.out.println(beagle); 
    } 
    } 
} 

По-видимому, выход системы даст ответ:

Так в принципе, может кто-нибудь объяснить мне, как код наверху даст выход? Если возможно, пожалуйста, опустите его как можно больше, потому что сейчас я не знаю, как это происходит. Спасибо всем, кто может помочь, и я надеюсь, что у вас у всех отличная ночь: D

+4

Подсказка: мысленно заменить 'beagle' на' sum'. – Makoto

+1

Первый бигль = 1, второй = 1 + 8; третий = 1 + 8 + 5. –

+0

получите ручку и бумагу и напишите выходные данные на каждой итерации. – Baby

ответ

1

Это повторение комментариев, но немного более подробно.

Получите листок бумаги и карандаш. Разделите бумагу на столбцы для «k» и «beagle» и столбец для заметок, если вы запутались.

Начните писать начальное значение beagle в колонке: 0.

Переход к петле. Напишите начальное значение k в его столбце: 0. Проверьте, следует ли делать итерацию цикла: меньше ли длины массива huskey? Это.

Теперь перейдите к += для первой итерации. Оцените правую сторону, просмотрев значение k и индексируя в массив huskey. Добавьте к текущему значению beagle и напишите его в столбце beagle. Это помещает 1 в столбец beagle.

Теперь перейдите к println. Он напечатает последнее значение, которое вы написали в колонке beagle, 1.

Вернитесь к for. Он будет увеличивать k на один, поэтому напишите 1 в столбце k. Как и раньше, проверьте, не превышает ли текущее значение k длину массива ...

Продолжайте это, сохраняя последнее значение каждой переменной в качестве последней записи в ее столбце. С практикой вы сможете сделать это в своей голове, но, пока не сможете, сделайте это на бумаге.

1
public class FinalProb { 

    public static void main(String[]junk) { // must be separated by space 
    //**************** variable initialization ****************** 
    int[] huskey = {1, 8, 5}; //declaration of int array 
    int beagle = 0; // int declaration 
    //*********************************************************** 
    // loop until k reaches huskey array lenght (it loops 3 times because huskey length is 3) 
    for (int k = 0; k < huskey.length; k++) { 
     beagle += huskey[ k ]; // add the values of huskey with given index 'k' to beagle variable 
     // huskey[0] = 1 
     // huskey[0] = 8 
     // huskey[0] = 5 
     System.out.println(beagle); 
    } 
    } 
} 

// 0 + 1 = 1 (new beagle value in first loop) 
// 1 + 8 = 9 (new beagle value in second loop) 
// 8 + 5 = 14 (new beagle value in third loop) 

// expected output: 
// 1 
// 9 
// 14 
0

значение К имеет значение от 0 и заканчивается в K < length.husky (Это 3):

  • к = 0, к = 1, к = 2,

, когда k = 3, 3 не < 3, поэтому петля закончится В результате: , когда люди говорят: бигль + = (что-то), это означает бигль = бигль + (что-то), то значение бигля будет изменено на [beagle + (something)]. Поскольку beagle инициализируется равным 0, то он продолжает добавлять значение внутри массива husky []. Итак:

  • к = 0, бигль = 0 + husky0 = 1 к = 1, бигль = 1 + husky1 = 9 к = 2, бигль = 9 + husky2 = 14

Надеюсь это поможет.

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