c++ - 如何在 C++ 中检查二维数组中负值的输入验证?
问题描述
这里只是一个简单的问题。我正在尝试检查输入验证的负值,我希望我的程序只接受用户输入的正值,这是我的代码。
//loop to array.
for(int i = 0; i < 3; i++) //loop to row first
{
//take in input into data.
for(int j = 0; j < 5; j++) //loop to column
{
//take input data.
cout <<"Monkey " << i+1 <<" ";
cout <<"Day " << j +1 << ":";
cin >> pound_food[i][j];
if(pound_food[i][j] < 0)
{
cout <<"Invalid number, number can't be negative, please try again\n";
break;
}
}
当他们找到负数时,我尝试打破循环或继续,但是即使我不希望将负数存储在数组中,它也会继续存储数字。我只希望它只存储正整数并重新提示用户再次输入数字。不知道为什么,希望能听听大家的意见!
解决方案
如果遇到负数,则不必break
退出整个列循环,只需减少列索引即可j
。这样,下一个数字将插入到刚刚插入负数的相同位置:
if(pound_food[i][j] < 0)
{
cout <<"Invalid number, number can't be negative, please try again\n";
--j; // instead of break
}
推荐阅读
- hyperledger-fabric - 超级账本结构开发模式
- javascript - 在 componentDidMount() 中调用时方法不更新状态
- javascript - 输入键功能有时有效,有时无效
- python - Python中的矩阵旋转
- node.js - 您如何在 Plesk 服务器上使用 GULP?
- uwp - 处于分配访问模式的 UWP 应用不断被发送回 Windows 登录屏幕
- events - 将关注点与消息分开
- amazon-web-services - AWS sam deploy 返回错误无效选择
- python - pymc3:具有多维集中因子的狄利克雷
- shell - shell:将输出流重定向到函数,同时保持对变量的访问