почему c while работает, а с if нет?