2017-02-08 2 views
0

Ich bin fest, wie man eine for-Schleife, die Inkremente in einer Reihe abwechseln wird. Zum Beispiel:Abwechselnd inkrementell für Schleife

i   x 
2.  7 
3.  12 
4.  14 

Wo x eine Kombination von i ist. Es wird zuerst um 5, dann um 2 und dann wieder um 5 erhöht. Ich habe versucht, den Modulus zu verwenden, um eine alternierende Reihe zu starten, aber ich kann nicht scheinen, dass die Zahl zunimmt. Irgendwelche Ideen? Vielen Dank.

+1

Es wäre hilfreich, wenn Sie auch getaggt haben, mit welcher Programmiersprache Sie arbeiten (es sei denn, Sie fragen einfach nach Pseudocode). –

+0

Ich arbeite derzeit hauptsächlich in Java, aber ich dachte nur, dass Pseudocode einfacher zu beantworten wäre. Vielen Dank! – Daniel

Antwort

0

zu erhöhen, müssen Ist es eine for-Schleife sein? Es gibt immer noch die While-Schleife.

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 
} 

Sie könnten problemlos weitere Inkremente zu diesem Code hinzufügen.

+0

Oder 'switcher = (Umschalter + 1)% 2;' –

+0

Danke! Das hat für mich funktioniert. – Daniel

0

Es wäre am besten, eine while-Schleife mit einem Flag zu verwenden, die Spur hält, ob Sie durch 2 oder 5.

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


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

    incrementFlag = !incrementFlag; // Alternate incrementing 
} 
Verwandte Themen