【发布时间】:2021-03-09 03:00:04
【问题描述】:
我需要检查数组中一个元素中的所有数字是否 = 0 或 1。
我有这个功能:
bool checkIfBin(int okt) {
while (okt > 0)
{
int digit = okt % 10;
if (digit > 1)
return false;
okt /= 10;
}
return true;
}
调用这个函数看起来像:
for (int j=0; j < 4; j++) {
cout << "Enter" << j+1 << " octet in binary system: ";
if (checkIfBin(okt[j]) == true)
cin >> okt[j];
else
break;
}
问题在于 - 当函数返回 false 时,它不会阻止程序循环。我已经调试了函数,它似乎工作正常,但我只是在学习,我可能做错了。没有收到任何错误。
不知道问题出在哪里
【问题讨论】:
-
检查一个数字 before 阅读它似乎有点倒退。 (看起来您得到了正确的零件,但组装顺序错误。)
-
if (a == true)与if (a)相同。 -
将
cin >> ...移到测试上方,将测试更改为if (!checkIfBin(okt[j]) break;并完全删除else处理程序。 -
我在 main 之前有一个函数声明,在末尾有一个函数
-
@ŁukaszStrama .. 这与这个问题完全没有有关。只需逐行查看您的代码,然后尝试向自己解释。