这些Java示例是如何工作的?(存在与气泡排序) static void eldontes(){ System.out.println(“---选择---”; int[]sorozat=新的int[]{1,-1,3,5}; 布尔存在=假; for(int i=0;i

这些Java示例是如何工作的?(存在与气泡排序) static void eldontes(){ System.out.println(“---选择---”; int[]sorozat=新的int[]{1,-1,3,5}; 布尔存在=假; for(int i=0;i,java,for-loop,boolean,conditional-statements,Java,For Loop,Boolean,Conditional Statements,首先,for循环中的!exists在做什么?!exist应该意味着布尔值现在为true,不是吗?那么increment i utnil sorozat.length AND exists=true是什么意思 下面是一个例子: static void eldontes() { System.out.println("--- Choosing ---"); int[] sorozat = new int[]{1, -1, 3, 5}; boolean exists = f

首先,for循环中的!exists在做什么?!exist应该意味着布尔值现在为true,不是吗?那么increment i utnil sorozat.length AND exists=true是什么意思

下面是一个例子:

  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);
static void buborekRendezes(){
System.out.println(“--Bubble order--”);
int[]sorozat=新的int[]{9,4,6,2,3,0,5,7,8,1};
对于(int i=sorozat.length-1;i>0;i--){
对于(int j=0;j索罗扎特[j+1]){
int tmp=sorozat[j];
索罗扎特[j]=索罗扎特[j+1];
索罗扎特[j+1]=tmp;
}
}
}
System.out.println(Arrays.toString(sorozat));
}
inttmp=sorozat[j]开始;
我真的不知道发生了什么。最后三行是做什么的?为什么tmp在代码的右边

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));
}
这是java中的一个基本工作代码。请先阅读算法,这样会更容易理解代码

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;
            }
        }
    }
这三行对应于
sorozat[j]
sorozat[j+1]

这是java中的一个基本工作代码。请先阅读算法,这样会更容易理解代码

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;
            }
        }
    }
这三行对应于
sorozat[j]
sorozat[j+1]

首先,for循环中存在的!在做什么

实际上,
!exists
意味着布尔变量
exists
false

int tmp = sorozat[j];
sorozat[j] = sorozat[j + 1];
sorozat[j + 1] = tmp;
它在这里用于
for
循环的条件块中,每当
元素
首先,for循环中存在的!在做什么

实际上,
!exists
意味着布尔变量
exists
false

int tmp = sorozat[j];
sorozat[j] = sorozat[j + 1];
sorozat[j + 1] = tmp;
它在这里用于
for
循环的条件块中,每当
元素
  • 直到i小于sorozat.length且!exists.Term!exists等于(exists==false)时,才递增i。因此,当到达sorozat的末尾或找到要查找的元素(即小于零的元素)时,循环停止

  • 这里的值在sorozat[j]和sorozat[j+1]之间交换。为此,将sorozat[j]值存储在tmp变量中以避免其被覆盖,然后将sorozat[j+1]放入sorozat[j],最后将从tmp获取的初始sorozat[j]值写入sorozat[j+1].如果没有tmp变量,您将丢失sorozat[j]值

  • 直到i小于sorozat.length且!exists.Term!exists等于(exists==false)时,才递增i。因此,当到达sorozat的末尾或找到要查找的元素(即小于零的元素)时,循环停止

  • 这里的值在sorozat[j]和sorozat[j+1]之间交换。为此,将sorozat[j]值存储在tmp变量中以避免其被覆盖,然后将sorozat[j+1]放入sorozat[j],最后将从tmp获取的初始sorozat[j]值写入sorozat[j+1].如果没有tmp变量,您将丢失sorozat[j]值

  • 这是交换两个变量值的基本算法。 基本上,是在过程中使用时间变量(tmp)交换值
    sorozat[j]
    sorozat[j+1]
    。 因此,如果
    sorozat[j]=4
    sorozat[j+1]=2
    在这3行之后,结果将是
    sorozat[j]=2
    sorozat[j+1]=4

    这是交换两个变量值的基本算法。 基本上,是在过程中使用时间变量(tmp)交换值
    sorozat[j]
    sorozat[j+1]

    因此,如果
    sorozat[j]=4
    sorozat[j+1]=2
    在这3行之后,结果将是
    sorozat[j]=2
    sorozat[j+1]=4

    谢谢你的快速回答!!:)谢谢你的快速回答!!:)
    for (int i = 0; i < sorozat.length && !exists; i++) {
        int elem = sorozat[i];
        if (elem < 0) {
            exists = true;
        }
    }
    
    int tmp = sorozat[j];
    sorozat[j] = sorozat[j + 1];
    sorozat[j + 1] = tmp;