當我的Xcode編譯我的代碼我有此錯誤的功能被 錯誤:控制可以達到非void函數C++的Mac的Xcode錯誤:控制可以達到非void函數的端
// Displays the abilities
pair<string, int> getability(string pclass, int mana, int inte, int level) {
string input;
string ability;
int cost;
cout << "Choose an ability" << endl;
if (pclass == "Champion") { // Champion Section
cost = inte*(level);
cout << "[1] Cleaving Strike [" << cost << " mana]" << endl;
cout << "[2] Melting Thrust [" << cost << " mana]" << endl;
cout << "[3] Critical Bash [" << cost << " mana]" << endl;
cost = inte*(level+1);
cout << "[4] Purify [" << cost << " mana]" << endl;
cost = inte*(level);
cin >> input;
if (input == "1") {
ability = "cleaving strike";
if (mana > cost) {
mana = mana - cost;
return {ability, mana};
}
} else if (input == "2") {
ability = "melting thrust";
if (mana > cost) {
mana = mana - cost;
return {ability, mana};
}
} else if (input == "3") {
ability = "critical bash";
if (mana > cost) {
mana = mana - cost;
return {ability, mana};
}
} else if (input == "4") {
ability = "purify";
if (mana > cost) {
cost = inte*(level+1);
mana = mana - cost;
return {ability, mana};
}
}
}
}
的端這就是我稱之爲的方式,我目前正在尋找和尋找,並找不到解決此問題的方法。我正在使用Mac,並使用Xcode。請幫幫我!
tie(action, mana) = getability(pclass, mana, inte, level);
是什麼'getability'返回,如果'pcclass'不是'「冠軍」'或'如果是input'不是1,2 ,3或4? –
如果你的用戶輸入的東西不在if-else之中,例如「5」,你的函數不會返回任何東西。在C++中,你必須總是返回一些東西(或拋出異常) – litelite