我是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;”正确分段。
感谢您的帮助。
答案 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]