Schleife... mit Bedingung.
-
Hallo,
ich stehe gerade ein bischen auf dem schlauch...
Habe eine schleife die ein Array durchläuft und prüft ob ein gewisser wert vorhanden ist.
for( int i=0; i<pBS->clientNumber(); i++ ) { if(data==pUsers[i]->getUser_ID()){ pUsers[i]->registerd=true; break; } }wenn der wert nicht im array ist soll eine Funktion ausgeführt werden. Wie mache ich das jetzt?
-
Du könntest am Ende der Schleife abfragen, welchen Wert i schließlich hat (OK, mit einer Schleifen-lokalen Variablen geht das nicht, aber das ist kein größeres Problem):
int i; for(i=0;i<pBS->ClientNumber();++i) { if(data==pUsers[i]->getUser_ID()){ pUsers[i]->registerd=true; break; } } if(i==pBS->ClientNumber()) cout<<"Client nicht gefunden"<<endl;Die Alterantive wäre es, den richtigen Eintrag mit find()/find_if() zu suchen und dessen Rückgabewert auszuwerten.
-
einfache möglichkeit ist sowas:
bool found = false; // wurde es gefunden? for(int i = 0; i < xx; i++) { if(irgendwas) { found = true; break; } } if(!found) Machwas();vielleicht geht bei dir auch std::find, kA wie deine datensturktur ist, dann ist das eleganter.
edit: mist ein paar sekunden

-
mal davon ausgegangen, dass registered zuvor den wert false hatte einfach nach der schleife prüfen ob die membervariable == true ist.
-
Danke!