#c#
#c#
Вопрос:
Я хочу создать цикл, используя уже определенный итератор.
В настоящее время я использую
int i;
while (i<10)
{
Console.Writeline(i);
i ;
}
Это некрасиво, потому что кто-то другой может позже удалить i . Если он отделен от оператора while большим блоком кода, будет неясно, для чего он предназначен.
Чего бы мне действительно хотелось, так это чего-то вроде
int i;
for (i<10; i )
{
Console.Writeline(i);
}
Это дает понять, что происходит, но это недопустимый C #.
Лучшее, что я придумал до сих пор, это
int i;
for (int z; i<10; i )
{
Console.Writeline(i);
}
Но это некрасиво. Дает ли C # мне элегантный способ сделать это?
Ответ №1:
Ну, вам не обязательно иметь что-либо внутри первой части цикла:
for (; i < 10; i )
{
Console.WriteLine(i);
}
Это то, что вы ищете? Лично я обычно стараюсь избегать подобных ситуаций в любом случае — я нахожу довольно необычным хотеть цикл без новой переменной.
Комментарии:
1. И для дополнительного минимализма попробуйте
for (;;)
использовать бесконечный цикл (вместоwhile (true)
).2. Отлично, спасибо. Я выполняю итерацию по чужой переменной, поэтому я не могу создать ее здесь.
Ответ №2:
Просто используйте пустую первую часть «for»:
int i;
for (; i<10; i )
{
Console.Writeline(i);
}
Ответ №3:
Вы также можете присвоить переменной самой себе в первой части цикла следующим образом:
int i;
for (i=i; i<10; i )
{
Console.Writeline(i);
}
Я нахожу, что это немного понятнее, чем оставлять первую часть цикла пустой, однако Visual Studio выдаст вам предупреждение «Присвоение, выполненное той же переменной; вы имели в виду присвоить его чему-то другому?»