Не надо прокручивать цикл до конца, надо делать цикл с условием.Я же выше написал.
2Макс:у нас такая же хрень с этим булевским флагом.На самом деле это красивое решение.
Но вот что я обнаружил:
Сравнительная характеристика break vs jmp
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
Я такой тест сделал.Мож кому интересно.Два проекта.Разница:
в одном:
for(i=0;i<2;i++)
{
k++;
if(i=2)break;
}
в другом
for(i=0;i<2;i++)
{
k++;
if(i=2)goto l;
}
l:
Дизассемблил.Получилось разница в этих кусках лишь в том, что в первом случае
делается
...
cmp i, 2
jnz short loc_40150A
jmp short loc_40150C
; ---------------------------------------------------------------------------
loc_40150A: ; CODE XREF: .text:00401506j
jmp ВНачалоЦикла
; ---------------------------------------------------------------------------
loc_40150C: ; CODE XREF: .text:004014F7j
...
Здесь мы уже вне цикла
а во втором:
...
cmp i, 2
jnz short loc_40150A
jmp short loc_40155D
; ---------------------------------------------------------------------------
loc_40150A: ; CODE XREF: .text:00401506j
jmp ВНачалоЦикла
; ---------------------------------------------------------------------------
loc_40150C: ; CODE XREF: .text:004014F7j
; .text:0040155Dj
...
Здесь мы уже вне цикла
....
Всякая хрень после цикла
...
xor eax, eax
jmp short loc_40155F
; ---------------------------------------------------------------------------
loc_40155D: ; CODE XREF: .text:00401508j
jmp short loc_40150C
; ---------------------------------------------------------------------------
loc_40155F: ; CODE XREF: .text:00401470j
; .text:00401557j ...
pop edi
pop esi
...
Итого при использование готу один лишний непонятно куда засунутый jmp и обходной путь против брейковского джампа сразу за цикл
Но по сути одно и тоже.Так чем готу хуже брейка?этой запутанностью с переходом за цикл?
![Cool :cool: :cool:](/talk/styles/default/xenforo/smilies/cool.png)
блин во нахреначил(меня кто-нить поймет???)