Losgeslagen whilelus

Status
Niet open voor verdere reacties.

kevinmrn

Gebruiker
Lid geworden
4 nov 2008
Berichten
49
Help!
Ik heb hier een whilelus geschreven. Maar c++ blijft hem doen, zowel wanneer int variabele m_S groter is als 6 en als de boolean m_bGeraakt true is. Ziet iemand mijn probleem?

Dank bij voorbaat:thumb:

/Code
Code:
 while(m_S < 5|| m_bGeraakt != true) m_bGeraakt = m_HostileArr[m_S++]->Click(x, y);
 
De code die jij geeft, blijft IN GEEN GEVAL doorgaan als m_S groter of gelijk is aan 5 EN m_bGeraakt waar is. Maar enkel als die twee voorwaarden GELIJKTIJDIG waar zijn.

Wat jij beweerde klopt gewoonweg niet met de code die je post.. Maar als je de bedoeling van je lus/variabelen eens kan uitleggen, kunnen we je waarschijnlijk verder helpen. Ik vermoed eigenlijk dat je while-lus zoals je die nu schrijft niet doet wat je wilt.

Echter als m_bGeraakt nooit true wordt (wat een return van de functie Click is, en dus zowel true als false kan zijn) gaat je lus nooit stoppen, en krijg je uiteindelijk een arrayindexprobleem, waarna je app crasht.
 
De click verwijst naar boolean die in een andere klasse checked ofdat een mouseklik(x, y) binnen een rechthoek valt(hitregion). Wanneer ik schrijf

Code:
while( m_bGeraakt != true) m_bGeraakt = m_HostileArr[++m_S]->Click(x, y);
Ik raak de boolean m_bGeraakt hebt. Dan voert hij wel de volgende actie uit;

if(m_bGeraakt)
{
//something
}

Maar zoals je weet mag een array niet over zijn limiet aantal gaan dus moet ik hem ook kunnen stoppen als int m_S op zijn limiet komt(m_HostileArr[MAXIMUM].
Ik hoop dat het wat duidelijker wordt,

mvg Kevin
 
In dat geval werkt het waarschijnlijk door gebruik te maken van volgende constructie:
Code:
while (!m_bGeraakt && (m_S < 5))
        m_bGeraakt = m_HostileArr[m_S++]->Click(x, y);
Deze lus zal uitgevoerd worden zolang je niet geraakt werd en nog steeds binnen je array-grens valt.
 
Hey bedankt man dat werkte inderdaad perfect.
Ik vind het toch maar iets verwarrend die while lus:p
Tot de volgende
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan