l oop выполняется только тогда, когда i
не равно j
из-за условия
for (i,j; i!=j; ++i, --j)
^^^^
Когда i
равно j
тело l oop не получает управление, потому что условие оценивается как false
.
Вы должны изменить условие в l oop. Также оператор break
является избыточным.
Вот демонстрационная программа.
#include <iostream>
int main()
{
for ( int i = 8, j = 12; not ( j < i ); ++i, --j )
{
if ( i == j )
{
std::cout << "i = j" << "\n";
}
else
{
std::cout << i <<" is not equal to " << j <<"\n";
}
}
}
Его вывод
8 is not equal to 12
9 is not equal to 11
i = j
Обратите внимание на это в любом случае в Вообще, вы не можете использовать условие i != j
в l oop, потому что, когда этот диапазон содержит четное число значений, вы можете получить бесконечное l oop. Например, рассмотрим случай, когда i
равно 10
и j
равно 11
. В этом случае после первой итерации l oop i
будет равно 11
, а j
будет равно 10
и снова i != j
.:)