1

Visual C++에서 Windows 데스크톱 용 Express 2013에서 나는 ASCII roguelike를 만들었지 만 다음 코드는 게임을 모두 엉망으로 만들고 있습니다. 게임에서 u defeat.a 적을하면 플레이어와 게임에 추가되는 경험을 얻을 수 있습니다. 충분하다면 레벨을 올려라. 코드가있다. 내가 만든 플레이어 클래스에있다. 그것은 .. 내가 while 루프가 끝나지 않아 같은 임의의 키를 누르십시오 번 더이 수평 키가 다시 다음 나타나는 내가 레벨 업 키가 그것이 내가 변경하면Visual C++ 무한 루프 while

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

가는 계속해서 나타납니다 프레스 .presses에 레벨 업 있습니다 인쇄 코드 ->

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

최대 레벨까지 한 번 인쇄되었습니다. 문제는이 코드에 있지만 무엇인지 알 수 있습니다. 몰라.

답변

0

문제점을 이해하기 위해 설명을 몇 번 다시 읽었습니다. 나는 그것을 올바르게 이해할 것을 간절히 바란다.

값을 알 수 없습니다. 백그라운드에서 chaning을 유지하지 않는 한, 루프는 경험치의 값에 따라 무한 횟수 또는 0 번 실행됩니다. 루프는 중단하지 않도록

코드의 첫 번째 단편 경험 대신 _experience 들어 while 루프 검사 1이 (50)에 의해 _experience 감소 할 때마다 레벨이 증가하지만.