Ответ 1
continue: ++j
, а затем, если j < count
, тогда statement2
иначе statement3
break: statement3
Какой оператор будет выполнен после "continue" или "break"?
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
continue;
}
//statement3
}
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
break;
}
//statement3
}
continue: ++j
, а затем, если j < count
, тогда statement2
иначе statement3
break: statement3
Продолжить прыжки прямо в верхнюю часть самого внутреннего цикла, где будет выполняться код для каждой итерации и проверка продолжительности (разделы 3 и 2 цикла for
).
Перерыв происходит сразу же после самого внутреннего цикла, ничего не меняя.
Может быть, легче подумать о том, что первый прыгнет на заключительную фигуру самого внутреннего цикла, а последний прыгает прямо за ней.
continue
завершает текущую итерацию, практически это то же самое, что:
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
goto end_of_loop;
end_of_loop:
}
//statement3
}
break
завершает цикл:
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
goto after_loop;
}
after_loop:
//statement3
}
Continue
: Это зависит. Оператор continue выполнит часть "increment" для цикла for, а затем часть "test", а затем решит, следует ли выполнить следующую итерацию или покинуть цикл.
Таким образом, это может быть оператор 2 или 3.
Break
: оператор 3.
Btw, это домашнее задание?
statement2 будет выполняться после продолжения, учитывая, что цикл не был в последней итерации.
statement3 будет выполняться после разрыва.
'continue' (как следует из названия) продолжает цикл, пропуская остальные инструкции в текущей итерации.
'break' break и выходы из цикла.
Для продолжения, innerloop выполняется с новыми i, j значениями i, j + 1
Для break, innerloop выполняется с новыми значениями i, j я + 1,0
если выполнены граничные условия