Итак, сегодня я пошел на собеседование, и один из вопросов был следующим (контекст С#).
//Print the output for the following code:
for (int i = 10, j = 0; j <= 10; j++, i--)
{
if (i > j)
Console.WriteLine(j.ToString());
}
Я никогда не видел такой конструкции раньше и, спрашивая своих коллег, 4 из 5 на моем рабочем месте тоже не знал (возможно, больше размышления над нами, но я отвлекаюсь). Используя некоторую базовую логику, я смог правильно ответить на вопрос, но это знание радикально изменило мое понимание того, как можно структурировать петли.
Итак, я думаю, мой вопрос сводится к этому.
- Используют ли все языки, основанные на синтаксисе C, эту функциональность? IE: C, С++, Java, javascript и т.д.
- Где этот синтаксис вытекает из?
- Существуют ли какие-либо другие "не известные" структуры, которые может принимать цикл for?
- Является ли код, подобный приведенному выше, считается плохой практикой, учитывая, как трудно читать?
- Есть ли хорошие примеры реального мира, где такая структура требуется?