1

在2013年的Windows桌面視覺C++中,我做了一個ASCII roguelike,但下面的代碼搞亂了這一切up.in在遊戲中,當你defeat.a敵人,你會得到經驗,添加到玩家和水平如果夠了。這裏是code.it是在我創建的球員類。 它印拉平到..沒有的時候,我喜歡按while循環永遠不會結束的任意鍵.presses然後水平的關鍵再次出現在我印刷機出現拉平的關鍵是不斷持續Visual C++ infinite 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(); 
    } 
} 

它只能打印拉平到一個時間。所以我知道這個問題是在這個代碼,但什麼。不知道。

回答

0

我重新閱讀您的描述幾次以瞭解您的問題。我hopt我正確地理解它。我們不知道的經驗值。除非它在後臺保持鏈接,否則根據經驗值的值,循環應該運行無限次或零次。

代碼的第一個片段由1每次降低50點。_experience時間經驗,而不是_experience遞增水平。但,while循環檢查,所以循環永遠不會打破。