Questa è una domanda difficile a cui rispondere. LEGGEREi i loop dall'alto verso il basso. Immagino quindi che tu stia facendo riferimento all'ordine in cui il codice viene eseguito. Quando vedi una struttura di loop, come quella del tuo codice, il ciclo più esterno è la prima cosa che viene eseguita.
for (i = 0; i < 3; i++) //This indicates that whatever is in between the braces that
//follow will be run 3 times.
{
for (j = 0; j < 4; j++)
{
cout << arr2d[i][j] << "\t";
}
cout << endl;
}
La prossima riga di codice è ciò che viene eseguito. Nel tuo caso, questo è un altro ciclo. Risciacqua e ripeti.
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++) //This loop will execute 4 times for each iteration
//of the outer loop
{
cout << arr2d[i][j] << "\t"; //Therefore, this statement is executed
//12 times in total
}
cout << endl; //and this one only 3, as it is outside of the inner loop.
}
Quindi come leggerli? Dall'alto verso il basso. Traccia le tue parentesi e ricorda che la prima riga di codice che avviene dopo le parentesi graffe sarà quella da eseguire per prima. Per dirla con le parole, "outward-in", assicurati di non pensare che i loop abbiano una precedenza più alta rispetto ad altri codici . Se dovessimo inserire un cout
tra il primo e il secondo ciclo, il ciclo esterno inizierebbe l'esecuzione, quindi il cout
e infine il ciclo interno (e il suo contenuto) seguiti da eventuali istruzioni successive.