【发布时间】:2016-04-16 23:56:45
【问题描述】:
我正在尝试检查用户输入的数据是否在我想要的范围内。到目前为止,我是这样的:
void getPlayersNumbers(int playerArray[], int size) {
cout << "Please enter 5 numbers between 1-5\n";
for (int i = 0; i < size; i++) {
cin >> playerArray[i];
if (playerArray[i] < 1 || playerArray[i] > 5) {
cout << "Please enter numbers between 1 and 5\n";
}
}
}
现在,如果他们输入小于 1 或大于 5 的数字,则会显示消息。唯一的问题是我仍然只能输入总共 5 个数字,即使其中一个数字超出范围并且出现了消息。我应该怎么做才能使函数只有在他们输入我设定范围内的 5 个数字时才会结束?
【问题讨论】:
-
试试explaining the logic in your code to your rubber duck。我相信你的橡皮鸭可能会有一些想法。
-
不要使用固定的
for循环,而是使用while,计数器仅用于正确输入。 -
如果数字超出范围,程序应再次请求。您可以通过调用函数替换循环体来完成此操作,该函数要求并返回正确范围内的数字,其中该函数使用循环反复询问,直到它得到一个 OK 数字。
-
提示 1:使用
std::vector代替原始数组。 -
提示 2:对于产生结果的函数,只需 return 该结果即可。
标签: c++ arrays function if-statement