static void eldontes() {
    System.out.println("--- Choosing ---");
    int[] sorozat = new int[]{1, -1, 3, 5};
    boolean exists = false;
    for (int i = 0; i < sorozat.length && !exists; i++) {
        int elem = sorozat[i];
        if (elem < 0) {
            exists = true;
        }
    }

    System.out.println("There's negative: " + exists);


首先,for循环中存在什么! !exist应该表示布尔值现在为true,不是吗?所以增加我utnil sorozat.length并且存在= true吗?这是什么意思?

然后是这个例子:

static void buborekRendezes() {
    System.out.println("--- Bubble order ---");
    int[] sorozat = new int[]{9, 4, 6, 2, 3, 0, 5, 7, 8, 1};
    for (int i = sorozat.length - 1; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            if (sorozat[j] > sorozat[j + 1]) {
                int tmp = sorozat[j];
                sorozat[j] = sorozat[j + 1];
                sorozat[j + 1] = tmp;
            }
        }
    }
    System.out.println(Arrays.toString(sorozat));
}


int tmp = sorozat[j];开始,我真的不知道发生了什么。最后三行做什么?为什么tmp在代码末尾位于右侧?

最佳答案

for (int i = 0; i < sorozat.length && !exists; i++) {
        int elem = sorozat[i];
        if (elem < 0) {
            exists = true;
        }
    }


!exists是确保找到第一个负值后循环立即中断。

根据您的下一个代码片段

for (int i = sorozat.length - 1; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            if (sorozat[j] > sorozat[j + 1]) {
                int tmp = sorozat[j];
                sorozat[j] = sorozat[j + 1];
                sorozat[j + 1] = tmp;
            }
        }
    }


这是java中Bubble sort的基本工作代码。先阅读算法,然后更容易理解代码。

int tmp = sorozat[j];
sorozat[j] = sorozat[j + 1];
sorozat[j + 1] = tmp;


这三行用于swap sorozat[j]sorozat[j+1]中的值

07-24 09:37