关于for循环嵌套作如下解释:
首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环。(外循环控制行数,内循环控制每一行的个数)
下面以冒泡排序为例说明:
-
第一个(外层)for循环作用:控制排序的轮数
-
第二个(内层)for循环作用:控制每一轮里的每一个比较步骤
代码:
public class Test {
public static void main(String[] args) {
int[] array = { 7, 3, 10, 0, 6 };
// 共4轮排序,每轮都是把最大的元素排在后面
for (int i = 0; i < array.length - 1; i++) {
// 每轮排序中:需要比较的元素个数比上一轮少一个
for (int j = 0; j < array.length - i - 1; j++) {
// 中间变量,用于两个元素交换位置
int temp = 0;
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
// 遍历数组,打印元素
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
例1:循环打印下图1
代码如下:
public static void testFor() {
int n=5;
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
}
public static void testFor1() {
for (int i =1; i <=5; i++) {
for(int j=5; j>=i; j--){
System.out.print(" ");
}
for(int j=1;j<=i*2-1;j++){
System.out.print("*");
}
System.out.println();
}
}
例:循环打印tu 2
代码如下:
public class Test {
public static void main(String[] args) {
/*
* 外层控制行数
* 内层控制星号的个数
*/
for (int i = 1; i <=5; i++) {
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}