2017-02-08 3 views
0

Я зациклился на том, как сделать цикл for, который будет чередовать приращения в серии. Например:Чередование инкремента для цикла

i   x 
2.  7 
3.  12 
4.  14 

Где х - некоторая комбинация i. Сначала он увеличивается на 5, а затем на 2, а затем обратно на 5. Я пробовал использовать модуль для запуска чередующейся серии, но я не могу заставить число увеличиваться. Есть идеи? Спасибо.

+1

Было бы полезно, если бы вы также отметили, с каким языком программирования вы работаете (если только вы не спрашиваете о псевдокоде). –

+0

Я работаю в основном на Java прямо сейчас, но я просто подумал, что псевдокод будет легче ответить. Благодаря! – Daniel

ответ

0

ли это быть для цикла? Там все еще цикл while.

int i = 0; 
char switcher = 0; /*in this case ot could also be a bool.*/ 
while(some statement) 
{ 
    switch(switcher) 
    { 
    case 0: 
     i+=5; 
     break; 
    case 1: 
     i+=2; 
     break; 
    } 
    switcher++; 
    if(switcher > 1) 
     switcher = 0; 
    //do something 
} 

Вы можете легко добавить к этому коду дополнительные инкрементальности differnt.

+0

Или 'switcher = (переключатель + 1)% 2;' –

+0

Спасибо! Это сработало для меня. – Daniel

0

Было бы лучше использовать время цикла с флагом, который отслеживает, должны ли вы увеличивать на 2 или 5.

incrementFlag = true; 
while(someCondition) 
{ 
    [code...] 


    if (incrementFlag) 
     i += 5; 
    else 
     i+=2 

    incrementFlag = !incrementFlag; // Alternate incrementing 
} 
Смежные вопросы