格式化方程式?

时间:2015-06-09 12:56:58

标签: java formatting format equation

我是Java的新手,我正在尝试使用数组中的int元素格式化方程式(我不断收到错误“不是语句”)。这是代码:

    int n = 0;
    int[] time = {mins, mins2, mins3, mins4, mins5};
    for(int j = 0; j <= 3; j++){
        if (time[j] < time[j+1]){
            n = time[j];
        }
    }
    for(int k = 0; k <= 4; k++){
        time[k] - n;
    }

我找到了最小的int(所有元素来自随机数生成器),现在我想从每个元素中减去最小值,并永久地将给定数组的元素更改为那些较小的数字。我不知道如何格式化“time [k] - n;”正确分段。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

该行:

time[k] - n

没有。它取值time[k]并从中减去值n。然后丢弃结果。

你想要的是从变量中减去n并将结果分配回相同的变量

time[k] = time[k] - n

在Java中,这相当于compound assignment operator

time[k] -= n

如果你有Java 8,你实际上可以这样做:

int[] time = {mins, mins2, mins3, mins4, mins5};
int min = IntStream.of(time).min().getAsInt();
int[] normalised = IntStream.of(time).map(i -> i - min).toArray();

即使使用早期版本的Java,我也会建议:

int[] time = {mins, mins2, mins3, mins4, mins5};
int n = Integer.MAX_VALUE;
for (int t : time) {
    n = Math.min(n, t);
}
for (int i = 0; i < time.length; ++i) {
    time[i] -= n;
}

即。尽可能使用foreach loop,否则使用数组的length属性,而不是硬编码长度。

答案 1 :(得分:0)

time[k] - n;更改为time[k] =- n;。因此它会将time[k] - n存储在time[k]