Вопрос Цикл for

Эксперт
Статус
Оффлайн
Регистрация
13 Сен 2020
Сообщения
1,415
Реакции[?]
713
Поинты[?]
10K
Код:
int p;

for (p = 0; p == i * 40; p = p + 40)
{
      window->DrawList->AddLine(ImVec2(bb.Min.x, bb.Min.y + p), ImVec2(bb.Max.x, bb.Min.y + p), ImColor(231, 231, 231), 1.5f);
}
есть это. По идее он должен нарисовать 7 ( i = 7 ) линий, но не рисует нисколько.
 
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,598
Реакции[?]
880
Поинты[?]
114K
Код:
int p;

for (p = 0; p == i * 40; p = p + 40)
{
      window->DrawList->AddLine(ImVec2(bb.Min.x, bb.Min.y + p), ImVec2(bb.Max.x, bb.Min.y + p), ImColor(231, 231, 231), 1.5f);
}
есть это. По идее он должен нарисовать 7 ( i = 7 ) линий, но не рисует нисколько.
мои глаза что с циклом...
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Код:
int p;

for (p = 0; p == i * 40; p = p + 40)
{
      window->DrawList->AddLine(ImVec2(bb.Min.x, bb.Min.y + p), ImVec2(bb.Max.x, bb.Min.y + p), ImColor(231, 231, 231), 1.5f);
}
есть это. По идее он должен нарисовать 7 ( i = 7 ) линий, но не рисует нисколько.
Дело в том, что в сам цикл вы ни разу не заходите. Вторая часть после ; является условием выполнения тела цикла.
Изначально i = 7, а p = 0 => 0 != 280 - поэтому линии и не рисуются. Лучшем решением станет:
Код:
for (int p = 0; p < i; ++p){
      window->DrawList->AddLine(ImVec2(bb.Min.x, bb.Min.y + p * 40), ImVec2(bb.Max.x, bb.Min.y + p * 40), ImColor(231, 231, 231), 1.5f);
}
 
Сверху Снизу