这段代码只是输出一个 0 数组。我不知道为什么。这肯定是一些简单的事情,所以我提前道歉,但现在还很早,我正在键盘上睡着了。这只是一个类项目(我是 Java 新手,但我已经做了一段时间的 c++),稍后我回家时会再看一遍,但任何帮助仍然会很棒。
<小时/>public static void main(String[] args){
Scanner inpt = new Scanner(System.in);
int[] topTen = new int[10];
int foo = 0, bogie = 0;
int lo = 0, hi = 0, swit = 0;
for(int b = 0; b < 15; b++){
lo = inpt.nextInt();
hi = inpt.nextInt();
for(int c = 0; c < topTen.length; c++) {
if((hi-lo) > topTen[c]) {
foo = topTen[c];
for(int d = c + 1; d < topTen.length; d++) {
swit = (swit == 0) ? 1 : 0;
switch(swit) {
case 0:
foo = topTen[d];
topTen[d] = bogie;
break;
case 1:
bogie = topTen[d];
topTen[d] = foo;
break;
}
}
}
}
}
}
运行后,topTen
充满了0
s
最佳答案
看起来您为数组元素赋值的唯一位置是:
topTen[d] = foo;
但唯一一次为 foo
赋值的是:
foo = topTen[c];
和
foo = topTen[d];
因此 foo
和数组的元素都保持为 0。
更正:您还将 bogie
分配给数组的一个元素,反之亦然,但这不会改变任何内容,因为 bogie
也保持为 0。
关于java - 为什么这段代码返回一个全是零的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29145301/