Вы немного пропустили логику;)
Если вы хотите, чтобы цикл заканчивался if (conditionA или conditionB), то это означает, что вы хотите продолжить цикл if (conditionA AND conditionB).
Другими словами, вы должны иметь
while(GAP>=0.05 && iteration<=1000)