Answer the question
In order to leave comments, you need to log in
How to repeat current iteration while C#?
Hello.
Can you please tell me how to repeat the current iteration while C# ?
Those. example
while (условие) {
код код код код
код код код код
if (условие) {
"перезапусить" текущую итерацию заново
}
код код код код
код код код код
}
Answer the question
In order to leave comments, you need to log in
Depends on logic. If, as shown below, then continue can be used :
int i = 0;
bool b = false;
while (i < 10)
{
Console.WriteLine("Текущее: {0}", i);
if (i == 5 && !b)
{
b = true;
continue;
}
i++;
}
int i = 0;
bool b = false;
while (i < 10)
{
again: // точка возврата
Console.WriteLine("Текущее: {0}", i);
if (i == 5 && !b)
{
b = true;
goto again;
}
i++;
}
// пауза между попытками (100 мс)
var interval = new TimeSpan(0, 0, 0, 0, 100);
// максимальное время ожидания (1 секунда)
var timeout = new TimeSpan(0, 0, 0, 1);
while (true)
{
var totalTime = new TimeSpan(); // счетчик времени
var заданиеВыполнено = false;
while(!заданиеВыполнено) // повторять, пока задание не будет выполнено
{
try
{
// тут код задания
// если ошибок не будет, то
заданиеВыполнено = true; // работа цикла будет завершена
}
catch
{
// если ошибка, делаем паузу
System.Threading.Thread.Sleep(100);
// увеличиваем счетчик времени
totalTime += interval;
if (totalTime > timeout)
{
// превышен таймаут, выходим
Console.WriteLine("Превышено время ожидания");
break;
}
}
}
}
Use, for example, a queue. Add all the files to be processed to it. In the loop until the queue is empty, take the first element and do the necessary actions with this file. If everything is successful, remove the element from the queue. If there is an error, just continue (without dequeuing) and the same file will be processed at the next iteration of the loop.
Backfilling question - how does the "current" differ from the "next"? continue implements exactly what you need.
I would do like this:
while (условие) {
do {
код код код код
код код код код
}while (условие);
код код код код
код код код код
}
See the situation. Iterates through the list of files to upload using while. Suddenly it happens that the server responded to some file, for example, with a 503 error. You need to download this file over a new one at the same moment. And if continue, then this file will be skipped and we will move on to the next file in the list. Or am I wrong?
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question