栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java编写的“回型”数组与输出

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java编写的“回型”数组与输出

Java萌新,第一次自己编写的“回型”数组,怕忘了,赶紧记下来,后面有机会再优化吧

···代码中定义数组大小的  “m”,可用Scanner类的方法改为键盘输入,就可以实现任意大小的回型数组了

public class HuiXingArray {
    public static void main(String[] args) throws Exception {

        //制作回型数组
        int m = 5;//行列数(m大的大小决定回型数组的大小)
        int r = 0;//行标
        int l = 0;//列标
        int xs = m;//限定行升变量
        int ys = m;//限定列升变量
        int xj = 0;//限定行降变量
        int yj = 0;//限定列降变量
        int sum = 0;//赋值变量

        int[][]arr = new int[m][m];
       Label: while (true){
                //升列
                for (; l < ys; l++) {
                    if (sum >= m*m){//结束数组赋值的条件
                        break Label;
                    }
                    sum++;
                    arr[r][l] = sum;
                }
                ys--;//当次升列结束,为下次升列初始化次数
                r++;//升列结束,提前升一行位,给下面升行初始化行位置
                l--;//升列结束后,列位置为已赋值列位,防止下面升行时覆盖,先要降列一位,为下面升行初始化列位
                //升行
                for ( ;r < xs; r++) {
                    if (sum >= m*m){//结束数组赋值的条件
                        break Label;
                    }
                    sum++;
                    arr[r][l] = sum;
                }
                xs--;//当次升行结束,为下次升行初始化次数
                l--;//升行结束,提前降一列位,给下面降列初始化列位置
                r--;//升行结束后,行位置为已赋值行位,防止下面降列时覆盖,先要降行一位,为下面降列初始化行位

                //降列
                for (; l >= yj; l--) {
                    if (sum >= m*m){//结束数组赋值的条件
                        break Label;
                    }
                    sum++;
                    arr[r][l] = sum;
                }
                yj++;//当次降列结束,为下次降列初始化次数
                r--;//降列结束,提前降一位,给下面降行初始化行位置
                l++;//降列结束条件( l--与l >= yj) ,导致多降了一列,回升一列,为下步降行初始化列位置
                //降行

                for (; r > xj; r--) {
                    if (sum >= m*m){//结束数组赋值的条件
                        break Label;
                    }
                    sum++;
                    arr[r][l] = sum;
                }
                xj++;//降行结束,为下次降行初始化降行次数
                r++;//降行结束条件 r--,导致多降了行,回升一行,为下步升列初始化位置
                l++;//降行结束,升一位列,为下步升列初始化位置
        }

        //输出回型数组元素
        for (int e = 0; e < arr.length; e++) {
            for (int f = 0; f < arr[e].length; f++) {
                System.out.print(arr[e][f] + "t");
            }
            System.out.println();
        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/825305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号