我试图退出检查条件(我意识到如果我抛出一个异常,但我试图避免这个项目),返回void
的方法。我有下面的代码,如果我正确解释它,应该返回if
语句,但整个方法仍在执行。代码中是否存在问题(如果需要,我可以发布更多内容),还是有更好的方式来编写此代码,而无需处理异常?从方法返回无效,以防止执行
void Rational::divide(Rational b) {
if (b.numerator == 0) {
cout << "Cannot divide by zero." << endl;
return;
} else if (b.numerator != 0) {
numerator = numerator * b.denominator;
denominator = denominator * b.numerator;
reduce();
}
}
编辑:我已更新代码以反映一些建议;只是为了澄清,if
语句本身正在正确执行(如果b为零,我会得到错误消息) - 一旦打印出错信息,方法的其余部分继续运行。
编辑2:更新为else if
修订。
检查你的条件为什么是错误的。您应该检查分母是否等于零,而不是计算结果。 – mic4ael 2015-01-20 21:26:53
您的if语句实际上是检查分子是否为0.您需要将其更改为if(b.deominator == 0) – 2015-01-20 21:27:54
@Rubix Rechvin我很确定if语句正在按照意图进行操作。该函数除以'b',我们需要确保reational值不为零,因此检查分子是否为零。有可能是'b'参数的分子实际上并不是'0'。 – 2015-01-20 21:40:50