2017-05-07 32 views
0

のは、次の例を想定してみましょう:forループの繰り返しを繰り返す方法C#?

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

    } 
} 

はのは、I = 5で言ってみましょう、私はループが条件(X)まで繰り返したくは他の反復に進む前に、満たされています。条件文(x)が利用できるようになるまでif文を実行し続けるにはどうすればよいですか?

+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ありがとうございましたが、私は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

条件(x)は私に

を満たされるまで、これはあなたのように聞こえるI = 5で、私はループを繰り返したいと言うことができますxが満たされるまでループが同じロジックを実行するようにします。たとえば、ループの各繰り返しでiの値を印刷していた場合は、xが満たされるまで5を印刷し続けたいとします。

そのため、代わりにforループを使用するのでは、私が代わりにwhileループを使用することをお勧めしたい:

​​

continue文がi++文はできませんを意味し、その次の反復へのループを移動xの条件が満たされるまで実行されます。 iの値を印刷についての私の例で行く

は、あなたが数字10から1を印刷したかったが、あなたは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 
関連する問題