我有一个正/负整数数组
int[] numbers = new int[10];
numbers[0] = 100;
numbers[1] = -34200;
numbers[2] = 3040;
numbers[3] = 400433;
numbers[4] = 500;
numbers[5] = -100;
numbers[6] = -200;
numbers[7] = 532;
numbers[8] = 6584;
numbers[9] = -945;
假设我想在程序找到最接近 myNum 的值时显示一条 toast 消息
int myNum = 600;
这可能吗?如果是这样我该如何实现?
P.S 不,我不想使用 System.out.println(),因为我打算将 IF 语句用于其他用途,我只是认为显示 toast 消息是最简单的事情。
最佳答案
怎么样:
public static void main(String[] args) {
int[] numbers = new int[10];
numbers[0] = 100;
numbers[1] = -34200;
numbers[2] = 3040;
numbers[3] = 400433;
numbers[4] = 500;
numbers[5] = -100;
numbers[6] = -200;
numbers[7] = 532;
numbers[8] = 6584;
numbers[9] = -945;
int myNum = 600;
int distance = Math.abs(numbers[0]-myNum);
int closest = numbers[0];
for(int i=1;i<numbers.length;i++) {
int itemDistance = Math.abs(numbers[i]-myNum);
if(itemDistance < distance) {
distance=itemDistance;
closest=numbers[i];
}
}
System.out.println("Closest number is:"+closest+" with distance: "+distance);
}
将打印:
Closest number is:532 with distance: 68
或者,您可以使用流来执行此操作:
int result = Arrays.stream(numbers).reduce((i,j) -> Math.abs(i-myNum) < Math.abs(j-myNum) ? i : j ).getAsInt();
System.out.println(result);
它将像前一个一样打印 532
。
关于java - 如何创建 IF 语句来检查值是否最接近?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444718/