break; C++: die Schleife ist es wirklich zu brechen

einfache Frage zu C++ code:

for(int i=0;i<npts;i++)
{
    for(int j=i;j<2*ndim;j++)
    {
        if(funcEvals[i]<bestListEval[j])
        {
            bestListEval[j] = funcEvals[i];
            for(int k=0;k<m_ndim;k++)
                bestList[j][k] = simplex[i][k]; 
            break; 
        }
    }
}

Möchte ich sicherstellen, dass

  • Jede Zeile von double **simplex eingefügt wird höchstens einmal in double **bestList
  • Die Instanz von break hier bricht aus der zweiten (inneren) for Schleife.

Ist das der Fall?

  • Ja, es ist ein ausbrechen aus der zweiten for Schleife.
  • break bricht immer aus der inneren Struktur (Schleife oder switch) aktiv an diesem Punkt in dem code (in diesem Fall die for (j ... loop).
  • Brechen bricht immer die innerste Schleife. Wenn Sie wollen, brechen Sie aus mehr als, dass Sie brauchen, um einen bool oder etwas zu verfolgen, wenn Sie fortfahren oder nicht.
  • Die break - Anweisung wird IMMER dann passieren, wenn funcEvals[i]<bestListEval[j] ist true. Sollten Sie wirklich nutzen, einige bessere Variablennamen.
  • Hinzugefügt "C" - tag, da ist die Frage relevant für C, und der code ist in C geschrieben.
InformationsquelleAutor kiriloff | 2012-05-14
Schreibe einen Kommentar