请参阅下面的代码:
package calc;
import java.util.Arrays;
import java.util.Scanner;
public class calc {
public static void main(String[] args) {
double[]numbers= {6 , 5 ,7};
Arrays.sort(numbers);
double diff = numbers[3-1];
for (int i =2 ; i<= 0; i--) {
System.out.println(numbers[i]);
diff-=numbers[i-1];
}
System.out.println("Answer --> "+diff);
}
}
我的问题是我试图减去数组中的元素。我假设用户已经随机插入了值,所以我已经对数组进行了排序,并且我已经“反向”迭代了数组(从最高索引到较低索引),这样我就可以减去这个 - &gt; 7-6-5 = -4。不幸的是,for循环没有被执行,有人能告诉我这里有什么问题吗?感谢
答案 0 :(得分:3)
由于循环语句中的条件,未执行for循环。
现在,你有int i=2; i <= 0; i--
。当Java执行此循环时,它会发现i=2
不是<= 0
,因此循环永远不会执行。
要使循环执行,请将i <= 0
更改为i >= 0
答案 1 :(得分:1)
检查你的循环。
double[]numbers= {6 , 5 ,7};
Arrays.sort(numbers);
// start with last number
double diff = numbers[numbers.length-1];
for (int i=numbers.length-2 ; i>= 0; i--) {
// substract other number one by one
diff-=numbers[i];
}
System.out.println("Answer --> "+diff);