/ / Вкладені для циклів - java, loops, for-loop, nested

Вкладені для циклів - java, loops, for-loop, nested

У мене є пристойний початківець розуміння регулярних для циклів, але у мене виникають проблеми обгортання моєї голови навколо вкладеного для циклів в Java.

У проблемі, над якою працюю, у мене є постійнаціле число, яке є максимальним числом, а потім я прошу користувача для 4 різних вхідних даних. З цих 4 входів, я намагаюся визначити, який з них я можу помістити "всередині" постійного цілого, я оголосив.

IE: якщо постійне ціле число становить 30, а користувальницькі входи 5, 9, 3 і 21, то вони скажуть їм, що вони можуть використовувати лише 5, 9 і 3, оскільки 21 буде надто великим для додавання.

Проблема в сюжетній формі полягає в тому, що користувач маєрюкзак, який має певну вагу. Програма просить користувача ввести 4 різні ваги об'єкта, а потім вирішує, які елементи він може поміститися в сумці.

Це стосується шкільного проекту, тому я маю використовувати вкладений для циклів.

Відповіді:

1 для відповіді № 1

Я не робив будь-який JAVA, але я знаю, що C # практично однаковий.

Я б так:

int max = 30;
int value = 0;
int counter = 0;
int[] input[4] = new int[5, 9, 3, 21];
bool[] canAddInput[4] = new bool[false, false, false, false];

for(value; value <= max; )
{
for(counter; counter < 4; counter++)
{
value += input[i];
if(value<=max)
canAddInput[i] = true;
}

if(counter >= 4)
Break;
}

0 для відповіді № 2

Будь-який простий спосіб думати про вкладене для циклів це ігнорувати той факт, що вони вкладені. За звичай, ви, як правило, використовуєте i для лічильника приросту зовнішнього циклу і j для внутрішньої петлі, яка є найважливішоюріч триматися прямо на початку. Якщо це означає, що вам буде сум'яття, воно, ймовірно, призведе вам до використання більш описових назв для змінних змін, ніж букви "i" та "j", наприклад outer і inner.

У будь-який момент часу, коли ви намагаєтесь структурувати свою логіку програми, вам потрібно лише зосередитись на for цикл, що ви працюєте найбільш безпосередньо всередині - принаймні, коли ви починаєте і вивчаєте їх вперше.


0 для відповіді № 3

Щоб зрозуміти вкладені цикли, ви можете почати з простих прикладів, а потім спробувати складніше. Наприклад, припустімо, ви хочете зробити лічильник.

int i, j;
for (i=0; i <= 9; i++)
{
for (j=0; j <= 9; j++)
{
System.out.println(i+""+j)
}
}

Вихід цифр від 00 до 99. Ви можете написати вихід циклу в паперті або щось, щоб побачити, як він працює. Давайте розглянемо приклад цього циклу, у вас є такий висновок:

00 //here your program entered the outer loop, i has now the value 0, after that, you enter to the inner loop, i remains 0, but j will change in the next iteration
01 // you are still in the first iteration of the outer loop, but the inner loop is on the second
02 // and so on ....
03
04
05
06
07
08
09 // ... until the inner loop finished looping
10 // once the inner loop finished looping, the outer loop changes again, and we are back to the inner loop

Після того, як все зрозуміло на ваш розум, ви можете вирішити, як буде виглядати ваш вкладена петля. Які змінні необхідно використовувати у зовнішньому циклі та які змінні для внутрішнього циклу.