java - 为什么这段代码返回一个全是零的数组?

标签 java

这段代码只是输出一个 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充满了0s

最佳答案

看起来您为数组元素赋值的唯一位置是:

topTen[d] = foo;

但唯一一次为 foo 赋值的是:

foo = topTen[c];

foo = topTen[d];

因此 foo 和数组的元素都保持为 0。

更正:您还将 bogie 分配给数组的一个元素,反之亦然,但这不会改变任何内容,因为 bogie 也保持为 0。

关于java - 为什么这段代码返回一个全是零的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29145301/

相关文章:

java - 我希望这个音乐文件能够从中断处继续播放音乐

netty-socketio 服务器中的 java.lang.NoSuchMethodError

java - 如何查找微调器显示的下拉 View

java - JLabel 在我的 JPanel 中的位置错误

java - 为什么我的 SimpleDateFormat 无法正确转换?

java - 为什么example中的 "@override"before functions报错?

java - 如何在 Spring Boot REST API 上设置超时?

javafx如何禁用checkboxTreeItem中的一项?

Java 作为 Java 的脚本语言?

java - 检查变量是 Long 还是 Double