Здравствуйте, CRT, Вы писали:
CRT>Здравствуйте, T4r4sB, Вы писали:
CRT>>>просто и интуитивно понятно
CRT>>>i != (unsigned)-1; --i) {
TB>>
CRT>и что не так?
CRT>тебе нужен диапазон значений в цикле [n-1;0]
CRT>значит при -1 надо выходить, что и отражено в условии.
CRT>так что всё очень явно и понятно.
CRT>или тебе (unsigned)-1 кажется непонятным? Ну это только если ты не понимаешь как числа в памяти представлены и что процессор не различает знаковые/беззнаковые при сложении, вычитании, сравнении
Не знаю, что у Тараса, а для меня — у тебя тут аж два момента на взоржать.
Первый — твоё "
интуитивно" понятно. Это как раз не интуитивно и требует адаптации, хоть и относительно лёгкой.
И тут есть ещё одна проблема. Если ты идёшь по циклу строго с шагом 1 — такая идиома действительно понятна. Но если тебе нужен больший шаг, то она уже не работает — тебе или надо, например, одновременно сравнивать с -1, -2, -3, какой там у тебя максимальный шаг, или (хотя бы) переходить со сравнения на равенство — на сравнение на больше-меньше.
Если у тебя есть запас значений, то сравнение i>=N может быть безопасным. Если нет, то тебе надо следить непосредственно за фактом перехода через 0, а не за самими значениями.
А второй — что это всё уже неоднократно проговаривалось в данной дискуссии, а ты влез в остывший тред и кэпствуешь с самого начала.