Отказ от ответственности: я знаю, что это неясно, и я не буду так программировать. Я знаю предпочтительный оператор do-while
, а не тот, вопрос о достоверности конкретной языковой конструкции.
Является ли goto
всегда предполагаемым, чтобы опустить условное выражение цикла for
? Из того, что я наблюдал, он пропускает как первые (то есть инициализирующие), так и вторые выражения. Будет ли это всегда происходить таким образом или это поведение зависит исключительно от компилятора?
#include <stdio.h>
int main(void)
{
int m = 5;
goto BODY;
for (m = 0; m < 5; m++)
BODY: puts("Message"); // prints "Message" once
printf("m = %d\n", m); // prints m = 6
return 0;
}