如何在while循环中输出用户输入等级及之前所有等级的所需经验
修改C++代码以输出1到指定等级的所有经验要求
原代码的问题在于仅针对输入的单个等级计算经验,且while循环执行一次就通过break终止,没有遍历从1到目标等级的所有层级。以下是修改后的代码,实现需求功能:
#include <iostream> using namespace std; int main() { int targetLevel; double experience; cout << "What levels do you want to know the experience needed for?" << endl; cout << endl; cin >> targetLevel; // 验证输入有效性,仅处理正整数等级 if (targetLevel <= 0) { cout << "Please enter a positive integer level." << endl; return 1; } // 遍历从1到目标等级的所有层级 for (int level = 1; level <= targetLevel; ++level) { experience = 100 * (level - 1) * (level - 1); cout << "Level " << level << " requires " << experience << " experience." << endl; } return 0; }
关键改动说明:
- 替换循环逻辑:用
for循环替代原有的while循环,从1开始遍历到用户输入的目标等级,逐个计算并输出经验值。 - 修正变量类型:将等级相关变量改为
int类型,因为等级应为整数,避免浮点数带来的不必要问题;新增targetLevel存储用户输入的目标等级,区分遍历用的当前等级变量。 - 添加输入验证:增加对输入值的判断,若输入非正整数则提示错误并退出,提升代码健壮性。
- 优化输出格式:移除原输出语句中的多余空格,让输出更符合示例格式。
内容的提问来源于stack exchange,提问作者ajsmith5150
相关产品推荐
相关产品推荐

