java - 这些 Java 示例如何工作? (存在性和冒泡排序)

标签 java for-loop boolean conditional-statements

  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 循环中的 !exists 有什么用? !exist 应该意味着 boolean 值现在为真,不是吗?所以增加我 utnil sorozat.length AND exists = 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;
            }
        }
    }

这是 Bubble sort 的基本工作代码in java..先看算法,再看代码会更容易理解。

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

这三行是​​到swap sorozat[j]sorozat[j+1]

中存在的值

关于java - 这些 Java 示例如何工作? (存在性和冒泡排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45611287/

相关文章:

java - boolean 值不变

postgresql - 多列索引中的 boolean 列

java - JBoss 上 Flex/BlazeDS 的 Client.Error.MessageSend 问题

java - 如何将 Spring Security AntMatchers 模式仅应用于具有 pathVariable 的 url

java - java中如何处理字符串

java - 创建大小为 n 的 boolean 数组的所有可能方式?

java - <li> 内的 <table> 使用 itext 转换为 PDF 不起作用

r - 对各种迭代应用贝叶斯模型 (JAGS)

c - 旋转存储像素的矩阵

for-loop - 如何使用边界值和步长作为浮点值进行 'for' 循环?