Visual c ++无限循环

时间:2016-09-14 18:44:09

标签: visual-c++ while-loop infinite-loop 2d-games visual-studio-express

在用于Windows桌面的express 2013中的visual c ++中,我制作了一个ASCII roguelike,但是下面的代码搞砸了所有内容。在游戏中,当你失败时,你获得的经验会被添加到玩家中,并且如果足够的话就升级。这是code.it在我创建的玩家类中。 它打印了Leveled up to ..没有时间我按任何键就像while循环永远不会结束。然后再按一下键出现然后我按下一把键放平了它似乎继续前进

void Player::addExperience(int experience){_experience += experience;
    while(_experience >50) { 
        _experience -= 50; 
        _level++; 
        printf("Leveled up%s",_level); 
        _getch();
    }
} 

当我将代码更改为 - >

void Player::addExperience(int experience) {_experience += experience;while(_experience >50) { _experience = 0;_level++/printf("Leveled up%s",_level);
        _getch();
    }
}

它只打印了一次。所以我知道问题出在这个代码中但是什么。不知道。

1 个答案:

答案 0 :(得分:0)

我几次重读您的说明以了解您的问题。我知道我理解正确。

我们不知道体验的价值。除非它在后台继续进行操作,否则循环应该基于经验的值运行无限次或零次。

每次将 _experience 减少50时,代码的第一个片段会逐级递增。但是,while循环会检查体验而不是 _experience ,所以循环永不中断。