1

我必须基于这个接口在 Java 中创建一个计算器。

public interface CalculatorIF {
    int add(int x, int y);
    int sub(int x, int y);
    int mult(int x, int y);
    //double div(int x, int y);
    //int sqrt(int x);
}

但是对于每种方法,我都需要前置条件。我真的需要先决条件方面的帮助,因为我什至无法想象一个有意义且尚未由 Java 处理的单个条件。

编辑:除法和 sqrt 对我来说很清楚,但我需要一些关于 add、sub 和 mult 的想法。

4

1 回答 1

1

如果添加两个Integer.MAX_VALUE值,结果将不适合int并被截断。另一方面,如果输入域受到限制,我们总是可以保证结果不会被截断,而是有一个期望值。

例如,如果x <= Integer.MAX_VALUE / 2y <= Integer.MAX_VALUE / 2,则和x + y将小于或等于Integer.MAX_VALUE,因此不会截断正整数。类似的推理可用于负值和Integer.MIN_VALUE。减法的前提条件可以用同样的方法完成。

对于乘法,如果任一操作数的绝对值小于sqrt (Integer.MAX_VALUE),则它们的乘积将在 的范围内int

检测上溢和下溢的更复杂的方法是可能的,但对于课堂练习来说,这样的先决条件似乎很好。

于 2016-11-06T14:10:54.140 回答