1.定义
嵌套循环指的是在一个循环体内包含另一个循环的结构。这种结构能够实现更加复杂的逻辑,特别是在处理多维数组或者需要进行多层次迭代的情况下
2.示例
每跑一圈 做十个俯卧撑,一共跑十圈
for (int a = 0; a < 10; a++) {System.out.println("\n正在跑圈");for (int b = 0; b < 10; b++) {System.out.print("\t俯卧撑");}
}
3.使用嵌套循环实现排序
冒泡排序
int[] arr = {18, 14, 30, 79, 7, 68, 30, 59, 64, 75};
for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {int a = arr[j];int b = arr[j + 1];if (a > b) {arr[j] = b;arr[j + 1] = a;f = false;}}
}
优化的冒泡排序
int[] arr = {18, 14, 30, 79, 7, 68, 30, 59, 64, 75};
for (int i = 0; i < arr.length - 1; i++) {boolean f = true;for (int j = 0; j < arr.length - 1 - i; j++) {int a = arr[j];int b = arr[j + 1];if (a > b) {arr[j] = b;arr[j + 1] = a;f = false;}}if (f) {break;}
}
选择排序
-
外层循环:遍历数组的所有元素(除了最后一个元素)。
-
内层循环:从当前索引
i
开始,遍历数组剩余的部分,寻找最小值的索引。 -
交换操作:如果找到了比当前位置
i
更小的值,则记录该索引x
。在外层循环结束后,如果x
不等于i
,则说明找到了一个更小的值,此时进行交换。
int[] arr = {18, 14, 30, 79, 7, 68, 30, 59, 64, 75};for (int i = 0; i < arr.length - 1; i++) {int x = i;for (int j = i + 1; j < arr.length; j++) {if (arr[x] > arr[j]) {x = j;}}if (x != i) {int temp = arr[i];arr[i] = arr[x];arr[x] = temp;}
}