玩转双层嵌套的for循环

1,先是一个简单的“金子”塔的打印
首先确认你要打印几行米字键外循环控制行数,之后先打印空格,再打印米字键通过for循环来确认打印的次数,最后比忘记换行,在打印好*键后进行换行
这里使用了高中学的数列的知识
“金子”塔的打印代码:

package com.lishuai.fuxi.www;
public class Demo {
    public static void main(String[] args) {
        print();
    }

    private static void print() {
        // TODO Auto-generated method stub
        for (int i = 1; i < 6; i++) {
            for (int j = 0; j < 5 - i; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < i; j++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

2,使用冒泡,选择排序来排序数组里的数字
首先了解一下数组的定义方式
数组的定义:
int[] arr=new int[]{自定义数}; int[] arr={自定义数};
int[] arr=new int[数字];

冒泡排序无论从大到小,还是从小到大,都是两个数比较,然后交换,每一次循环选出一个最小(大)数排在右边,每一次循环后到下一次循环都会少选一次。
因此内层循环的右区间要注意变化规律
冒泡排序从小到大代码:

public class Demo {
    public static void main(String[] args) {
        int[] arr = new int[] { 10, 51, 48, 45, 21, 34, 51 };
        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        for (int i = 0; i < 6; i++) {
            System.out.println(arr[i]);
        }
    }
}

选择排序是将第一个数与其它一组数据进行比较找到最小(大)值,然后替换,之后第二个数一直循环下去,其实就是将无序的数组,从左往右进行排序,所以要注意内层循环中初始值的变化规律。
选择排序代码:

public class Demo2 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] arr = new int[] { 12, 14, 8, 6, 34, 25 };
        for (int i = 0; i <= arr.length - 1; i++) {
            for (int j = i + 1; j < arr.length - 1; j++) {
                if (arr[i] > arr[j]) {
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        for (int i = 0; i < 5; i++) {
            System.out.println(arr[i]);
        }
    }
    
}

3,杨辉三角代码实现:

package com.lishuai.fuxi.www;

public class for2Tast {
    public static void main(String[] args) {
        int a=10;
        int arr[][];
        arr=new int[a][];
        //为一维数组定义长度
        for (int i = 1; i <= 10; i++) {
            arr[i - 1] = new int[i];
        }
        //根据杨辉三角的特点为二维数组赋值
        for (int i = 0; i <10; i++) {
            for (int j = 0; j <= i; j++) {
                if(i==j||i==0||j==0){
                    arr[i][j]=1;
                    continue;
                }else{
                    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
                }
            }
        }
            //赋值后进行打印
            for (int m = 0; m < 10; m++) {
                for (int n = 0; n <= m; n++) {
                    System.out.print(arr[m][n] + " ");// 循环输出
                }
                System.out.println(" ");
            }
}

你可能感兴趣的:(玩转双层嵌套的for循环)