c++ - 如何为文本 rpg 库存创建添加项目功能?
问题描述
存货
vector<string> inventory;
vector<int> inventoryQ;
物品添加功能
void addItem(string item, int quantity){
for(int i = 0; i < inventory.size(); i++){
if(inventory[i] == item){
inventoryQ[i] += quantity;
cout << "x" << quantity << " " << item << " was added to your inventory." << endl;
} else if(i == inventory.size()){
inventory.push_back(item);
inventoryQ.push_back(quantity);
cout << "x" << quantity << " " << item << " was added to your inventory." << endl;
}
}
}
它的使用示例
user.addItem("Gold", 1);
也没有文本输出到控制台。
解决方案
看起来您希望else if(i == inventory.size())
在迭代循环而没有找到匹配项时被采用。
麻烦的是,在循环内部这个条件永远不会是 true。
只有在循环之后才是真的。
因此,在循环之后移动该逻辑,或者return
从匹配条件中移动,或者设置一个布尔值来跟踪发生了什么。
推荐阅读
- javascript - React js - 有没有其他方法来优化我的条件代码
- image-segmentation - 使用自定义数据集注释图像以训练 YOLO
- docusignapi - DocuSign 何时为 Chrome 80 做好准备?- sameSite cookie 更改
- c# - 在迁移中编写更新 sql 脚本
- angular - 如何限制角料垫芯片的字符大小?
- java - Java中的贝塞尔曲线与点
- c# - C# WCF 客户端参数异常 XmlNode[] 无法转换为类型“...”
- ios - 如何在我的 ios 应用程序中检索嵌套的 firebase 数据?
- python - 如何合并 2 个不同长度的数据框并保留第一个数据框的所有位置?
- python - 无法导入 Selenium 包