2017-05-07 85 views
0

假設下面的例子:如何重複循環迭代c#?

int Lenght = 10; 
for(int i = 0; i < Length; i ++) 
{ 
    if(i == 5) 
    { 

    } 
} 

比方說,在I = 5,我希望循環重複,直到條件(X)得到滿足,繼續其他迭代之前。如何保持if語句運行直到條件(x)可用?

+1

你應該解釋一下你想要做什麼。如果我正確地理解了你,並且你想繼續做同樣的頂級循環,直到滿足某些條件,我只需重置計數器。例如'if(i == 5 &&!condition){i = 4;}'。循環計數器然後將其增加到5。 –

+0

所以你的意思是我可以將計數器設置爲i = 4。好的,我會試一試。 –

+0

你正在做的是一個阻塞操作,這意味着如果改變循環計數器,你可以坐在一個內部while循環中,直到滿足條件。 – Snympi

回答

4

你可以做以下事情,雖然這不是一個好主意。你想做什麼?

for (var i = 0; i < 10; i++) 
{ 
    if (i == 5) 
    { 
     while (!condition(x)) { } 
    } 
} 
+0

謝謝@InBetween,但我想知道,是否可以將計數器設置爲i = 5,並將它保持在該點,直到我完成其他任務,然後讓我按正常增量? –

0
int Lenght = 10; 
for(int i = 0; i < Length; i ++) 
{ 
    // this loop iterate through all values 
    // lets say at i = 5, I want the loop to repeat until conition (x) is met 
    // before continuing to other iterations 
    if(i == 5) 
    { // For example sake assuming x is an int and 10 is your exit val 
     // Post more code for a better answer 
     while (x != 10) 
     { 
      x++; 
     } 
} 

}

0

可以說,在我= 5,我希望循環重複,直到條件(X)滿足

對我來說,這聽起來像你希望循環執行相同的邏輯,直到滿足x。例如,如果您在循環的每次迭代中打印的值爲i,則希望繼續打印5,直到滿足x

因此,而是採用了for循環,我建議使用while循環,而不是:

​​

continue語句將循環到它的下一個迭代,這意味着i++語句也不會直到滿足x的條件。

與我有關打印的i的值例子去,讓我們假設你想打印的數字110,但你想打印5 3倍。你可以是這樣做的:

int length = 10; 
int i = 1; 
int x = 1; 
while (i <= length) 
{ 
    Console.WriteLine(i); 

    if (i == 5 && x < 3) 
    { 
     x++; 
     continue; 
    } 

    i++; 
} 

,輸出:

1 
2 
3 
4 
5 
5 
5 
6 
7 
8 
9 
10