While loop won't stop looping

Again, this game i'm working on had a bug. I have a while loop dealing for when the player levels up, and it won't stop looping through. Here's the calling of it.

void Player::addExperience(int experience)
{
_experience += experience;
int experienceToNextLevel;
if (_level == 1)
{
experienceToNextLevel = 50;
}
else
{
experienceToNextLevel = (_level * _level) + 50;
}
//level up
while (_experience > experienceToNextLevel)
{
_attack += 10;
_defense += 5;
_health += 10;
_level++;
printf("Welcome to level %d!\n", _level);
_experience = _experience - experienceToNextLevel;
experienceToNextLevel = (_level * _level) + 50;
system("PAUSE");
}
}
1
2
3
4
5
6
7
8
9
10
if (_level == 1)
{
experienceToNextLevel = 50;
}
else
{
experienceToNextLevel = (_level * _level) + 50;
}
//level up
while (_experience > experienceToNextLevel)


Lets say the person is level 1 and they just gained 51 experience points.

The experience to next level is 50. Your while loop is saying: while (_experience > experienceToNextLevel)

which is basically while 51 > 50 which will always be true.
Topic archived. No new replies allowed.