這應該是一個簡單的問題。我對枚舉沒有太多的瞭解,所以我不完全理解它們是如何工作的。在我的程序中,我試圖在一個枚舉中存儲一個玩家的工作。我需要可以改變作業的功能。我正在嘗試使用switch語句,但它不會改變玩家的工作。在枚舉值之間切換:C++
代碼:
// if change is True, change the job. If false, simply return the current value
int GameModeState::changeJob(bool change)
{
int job = Landman; // Default job is landman
if (change == true)
{
switch(job)
{
case Landman:
return job;
break;
case Geologist:
return job;
break;
default:
job = Landman;
return job;
break;
}
}
else
{
return job;
}
}
// when the player opens the stat sheet, it should change their job
void GameModeState::_statsheet()
{
changeJob(true);
}
我在做什麼錯有工作變化?我認爲問題出在switch語句中。
你是什麼意思的「它沒有改變」?你返回不同的'job'值,但是忽略了返回值。 – 2011-04-14 15:11:10
什麼是錯誤的行爲?在這裏,我只是看到你總是把工作分配給蘭德曼。 – 2011-04-14 15:11:54
我不知道如何返回工作的新價值......也就是說,我不知道我的switch語句正在做什麼......我希望它能夠返回新的工作,但顯然我的「默認」是趕超它? – Briz 2011-04-14 15:13:19