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]
中的值