Подтвердить что ты не робот

С++ продолжить против разрыва

Какой оператор будет выполнен после "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                                                                                                                                                                                                                           
 }
4b9b3361

Ответ 1

continue: ++j, а затем, если j < count, тогда statement2 иначе statement3

break: statement3

Ответ 2

Продолжить прыжки прямо в верхнюю часть самого внутреннего цикла, где будет выполняться код для каждой итерации и проверка продолжительности (разделы 3 и 2 цикла for).

Перерыв происходит сразу же после самого внутреннего цикла, ничего не меняя.

Может быть, легче подумать о том, что первый прыгнет на заключительную фигуру самого внутреннего цикла, а последний прыгает прямо за ней.

Ответ 3

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                                                                                                                                                                                                                           
 }

Ответ 4

Continue: Это зависит. Оператор continue выполнит часть "increment" для цикла for, а затем часть "test", а затем решит, следует ли выполнить следующую итерацию или покинуть цикл. Таким образом, это может быть оператор 2 или 3.

Break: оператор 3.

Btw, это домашнее задание?

Ответ 5

statement2 будет выполняться после продолжения, учитывая, что цикл не был в последней итерации.

statement3 будет выполняться после разрыва.

'continue' (как следует из названия) продолжает цикл, пропуская остальные инструкции в текущей итерации.

'break' break и выходы из цикла.

Ответ 6

  • Для продолжения, innerloop выполняется с новыми i, j значениями i, j + 1

  • Для break, innerloop выполняется с новыми значениями i, j я + 1,0

если выполнены граничные условия