2012-05-26 3 views
1

Im делает игру в Java и должен быть в состоянии сделать петлю, что делает что-то вроде этого:java: есть ли цикл, который может это сделать?

первого прохода через петлю:

for(int i=0;i<5;i++) 
{ 
    example.print(0); 
} 

второй проход:

for(int i=0;i<5;i++) 
{ 
    example.print(0); 
    example.print(1); 
} 

и так и с другим примером.print() добавляется каждый раз.

Для того, чтобы программа работала правильно, каждому «example.print()» физически должен быть код. Любые идеи?

+1

«Для того, чтобы программа работала правильно, каждый„example.print()“имеет физически есть код ». Что это значит? –

+0

Приятно видеть, как люди преодолевают свое желание гневаться на новичков. Хотя, вы должны были исследовать это больше. – keyser

+0

@LaurenceGonsalves Отказ от языка в сторону, понятие физического кода немного беспокоит;) – Tim

ответ

5

Похоже, вы хотите, вложенные циклы:

for (int i = 0; i < 5; i++) { 
    for (int j = 0; j < 5; j++) { 
     example.print(i + j); // This will need adjusting 
    } 
} 

Примечания:

  • Вы хотите настроить i + j часть по мере необходимости, чтобы получить желаемый результат. Вы не сказали, что должно произойти, когда мы пройдем первые пять. :-)
  • Вы не сказали, сколько проходов вам нужно, поэтому я предположил 5. Если вы хотите меньше, замените верхний предел петли i (внешний), вероятно.
+1

aah я ненавижу, когда это происходит. Я так долго программировал, что упустил такое простое решение! Спасибо за помощь. – user1419268

+0

@ user1419268: :-) Мы все это сделали. Если это * ответит * на вопрос, не забудьте отметить ответ как «принятый». Подробности: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

2
int loopCounter = 0; 

for(int i=0;i<5;i++) 
{ 
    for(int k=0; k<loopCounter; k++)example.print(k); 
    loopCounter++; 
} 
+0

Это не печатает 0 при первом запуске, так как loopCounter и k равны. –

1

Моя версия:

for(int i=0;i<5;i++) 
{ 
    for(int k=0; k<i; k++) 
      example.print(k); 
} 
+1

Но почему бы не '... {for (int k = 0; k

+0

Правильно я забыл ... двойное редактирование :-(Извините – TeaOverflow

0

Это кто-то предположение, что вы имеете в виду под "физически там", но я дам ему выстрелили:

final Example example = new Example(); 
for (int i = 0; i < 5; i++) 
    switch (i) { 
    case 4: example.print(i-4); 
    case 3: example.print(i-3); 
    case 2: example.print(i-2); 
    case 1: example.print(i-1); 
    case 0: example.print(i-0); 
    } 
+0

Я думаю, что он имел в виду. Не знаете почему. – keyser

+0

Как бы это сделать, если «5» была переменной, постоянно увеличивающейся? – user1419268

+0

Очевидно, переменная, значение которой изменяется на runtime не сможет повлиять на код, который был сделан компилятором заранее. Я должен предупредить вас, что весь ваш вопрос ошибочен. Вы должны были заявить о своей более широкой проблеме: какая ситуация заставляет вас ** думать **, вы хотите, чтобы такой montrosity –

0

Попробуйте это.

for (int x = 0,y = 0; x < 100; x++,y++) { 

     example.print(x + y); // You will need to tweak these values 
    } 

100 - это предполагаемое значение здесь, для nos времен цикла будет повторяться.

0

вот мое взятие * с учетом параметров вашей посылки к методу печати является то, что вы хотите, чтобы напечатать

int n=3; //n is the highest param value you want your print method to receive, 
     //here it's just 3 

for (int i=0; i<n; i++) { 
    for (int j=0; j<(i+1)*5; j++) { 
     example.print(j/5); 
    } 
} 
Смежные вопросы