Saliendo de un bucle for

Se supone que debo usar este código

for(i=1;i<4;i++) { for(j=1;j,4;j++) { printf("Running i=%dj=%d\n", i, j); } } 

… con este código para sacarlo de su bucle

 if(i==2&&j ==1){ printf("Break inner loop when i=%d and j=%d\n", i, j); break; } 

Mi libro de texto dijo que insertara esta statement de break al principio del bloque de bucle interno. ¡No sé dónde está! Ya he probado muchos lugares, y todavía no puedo entenderlo. aquí todo mi progtwig:

 #include  int main() { int i,j; for(i=1;i<4;i++) { for(j=1;j,4;j++) if(i==2&&j ==1){ printf("Break inner loop when i=%d and j=%d\n", i, j); break; } printf("Running i=%dj=%d\n", i, j); } } return 0; } 

Lo descubrí: tenía un error tipográfico

El comienzo del bloque de bucle interno es justo después de { en el segundo for :

 for(i=1;i<4;i++) { for(j=1;j,4;j++) { // <<<--- They mean here. printf("Running i=%dj=%d\n", i, j); } } 

Tenga en cuenta que la break solo saldrá del bucle interno. El bucle exterior girará de nuevo. Si necesita salir de ambos bucles, deberá agregar una marca de algún tipo.

Acabo de notar que tiene un error tipográfico en su bucle interno que es realmente válido C (el operador de coma). Debería haber sido < :

  for(j=1;j<4;j++) 

Estaría en su segundo bloque, por encima o debajo de la statement de impresión. Es el único lugar al que puede ir dado el scope de las variables.

la ruptura en el bucle interno lo sacará del bucle interno cuando i == 2 y j == 1, por lo que no ejecutará la función printf("Running i=%dj=%d\n", i, j);

continúa en bucle porque el código aún debe ejecutar los bucles hasta que tanto i como j sean menores que 4.