1

Visual C++では、Windowsデスクトップ用のExpress 2013で、私はASCIIローグライクを行いましたが、次のコードはすべてのゲームを上手くいじっています。あなたはdefeat.aの敵を経験してプレイヤーに追加されます十分にレベルアップ。コードがあります。私が作成したプレーヤークラスにあります。 それは..私は、whileループのような任意のキーは決して終わらない押し倍の何が平準化キーが再び表示されます.presses私がレベルアップキーを押していないためにレベルアップして印刷することは、私が変更した場合Visual C++無限ループ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

あなたの問題を理解するために、あなたの説明を何度か読み直しました。私はそれを正しく理解しています。

という値はわかりませんです。バックグラウンドでチャニングを維持しない限り、ループは、の経験の値に基づいて無限回数または0回実行されるはずです。

コードの最初のフラグメントを1、それは50で_experienceを減少させるが、その代わり_experience経験ためwhileループチェックので、ループが壊れることがないたびにレベルをインクリメントします。