JAVA--多重循环

本文介绍了JAVA中的多重循环概念,强调了外层循环控制行数,内层循环控制个数。详细讲解了冒泡排序的稳定性和工作原理,并提供了代码示例。此外,还涉及到了数组的定义及初始化,以及使用多重循环实现数组的升序和降序输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多重循环是循环的嵌套,即一个循环体内包含另一个完整的循环结构

外层循环控行数,内层循环控个数

冒泡排序:

如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式。

1.原理:比较两个相邻的元素,将值大的元素交换到右边

2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。

    (1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。

    (2)比较第2和第3个数,将小数 放在前面,大数放在后面。

    (3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,如此下去,重复以上过程,直至最终完成排序。

代码实现:

public class BubbleSort {
    public static void BubbleSort(int[] arr) {
        int temp;//定义一个临时变量
        for(int i=0;i<arr.length-1;i++){//冒泡趟数
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j+1]<arr[j]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }

数组

同一种类型数据的集合。其实数组就是一个容器。

格式一

元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

示例:int[] arr = new int[5];

格式二

元素类型[] 数组名 = new 元素类型[]{元素,元素,……};

int[] arr = new int[]{3,5,1,7};

int[] arr = {3,5,1,7};

程序分享:

从控制台输入直角三角形的高度
每行*的数目依次为1,3,5,7...
Scanner input = new Scanner(System.in);
        System.out.println("请输入直角三角形的行数:");
        int row = input.nextInt();         
        int i;
         for ( i = 1; i<=row;i++) {
             for (int j = 0; j < 2 * i - 1; j++) {

                System.out.print("*");

             }
             System.out.println();

         }
打印直角三角形
Scanner input = new Scanner(System.in);
         System.out.println("请输入直角三角形的行数:");
         int row = input.nextInt();
         int i;
         for ( i = 1; i<=row;i++) {
             for (int j = 0; j < i; j++) {

                 System.out.print("*");

             }
             System.out.println();

         }
输入直角三角形行数,呈现倒直角三角形输出
Scanner input = new Scanner(System.in);
        System.out.println("请输入直角三角形的行数:");
        int row = input.nextInt();
        for (int i= row;i>0;i--){
            for (int j=i;j>0;j--){
                System.out.print("*");
            }
            System.out.println();
        }
    }

打印乘法口诀

   for (int i = 1;i<=9;i++){
            for (int j = 1;j<=i;j++){
                System.out.print(j+"*"+i+"="+i*j+"\t");
            }
            System.out.println();
        }

输入打印行数,打印菱形,输入行数为奇数继续输入

 Scanner sc = new Scanner(System.in);
        System.out.println("请输入要打印菱形的行数(奇数):");
        double a = sc.nextInt();
        double b = (a / 2) + 0.5;
        double c = (a / 2) - 0.5;
        if (a % 2 == 0) {
            System.out.println("请重新输入");
        } else {
            for (int i = 1; i <= b; i++) {
                for (int j = 1; j <= b - i; j++) {
                    System.out.print(" ");
                }
                for (int k = 1; k <= 2 * i - 1; k++) {
                    System.out.print("*");
                }
                System.out.println();
            }
            for (double i = c; i >= 1; i--) {
                for (int j = 1; j <= b - i; j++) {
                    System.out.print(" ");
                }
                for (int k = 1; k <= 2 * i - 1; k++) {
                    System.out.print("*");
                }
                System.out.println();
            }
        }

    }

排列输出数组内容;升序输出;降序输出

 char tem;
        char arr[] = new char[]{'a','c','u','b','e','p','f','z'};
        System.out.print("原字符序列:");
        for (int i =0;i<8;i++ ){
            System.out.print(arr[i]+"\t");
        }
        System.out.println("");
        System.out.print("升序排序为:");
        for (int j=0;j<=arr.length-1;j++){
            for (int k = 0;k< arr.length-1-j;k++){
                if (arr[k]>arr[k+1]){
                    tem = arr[k];
                    arr[k] = arr[k+1];
                    arr[k+1] = tem;
                }
            }
        }
        for (int i =0;i<8;i++ ){
            System.out.print(arr[i]+"\t");
        }

        System.out.println(" ");
        System.out.print("逆序排序为:");
        char tem1 ;
        for (int l = 0;l<=arr.length-1;l++){
            for(int m = 0;m< arr.length-1-l;m++){
                if(arr[m]<arr[m+1]){
                    tem1 = arr[m+1];
                    arr[m+1] = arr[m];
                    arr[m] = tem1;
                }
            }
        }
        for (int i =0;i<8;i++ ){
            System.out.print(arr[i]+"\t");
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值