java用嵌套循环做空心菱形_for嵌套循环打印菱形 和 空心菱形

晕。大晚上的看见你这题就睡不着了研究了俩小时。。。。

思路:1、每一行为一个一维数组,元素的顺序按方阵需求排列。使用for循环来为数组赋值。

2、声明一个变量,用作为数组中每个元素赋值。因为方阵中的数字是从1开始递增的。

只不过排列的顺序不一样。

3、假如一个二维数组中有4个一维数组,一维数组中各有4个元素,这代表着方阵的行和列。

(1) 因为程序是逐行打印的,经观察方阵,发现其右边列为递增,既下标为1,2,3的这三个数组的最大下标的值。我们可以利用for循环进行赋值,

(2)同理可以将方阵首行的数据直接以一个for循环完成赋值。代码如下;

关键:1、关键就在用于赋值的这个变量。整个程序都应围绕这个变量的递增来编写循环。好处就在于无需凭空想象,只需按部就班的为相应位置的元素赋值即可。

package javase基础毕向东;

import java.util.Scanner;

public class Gn {

public static void main(String[] args)

{

System.out.println("你想要几行?");

Scanner in=new Scanner(System.in);

int zqq=in.nextInt();       //用于接收用户输入的行数。

int[][] arr=new int[zqq][zqq];       //建立一个二维数组。

int fz=0;            //这个变量最关键,是用来给数组赋值的,整个赋值的过程都应该跟着这个变量走。

int x=0;

int n=(zqq+1)/2;

for(int y=0;y

for(x=y;x<=zqq-y-1;x++){

arr[y][x]=++fz;                              //此为对方阵首行进行赋值,一次搞定首行。如1234

}

for(x=y+1;x<=zqq-y-1;x++){

arr[x][zqq-y-1]=++fz;                   //要跟着fz的变化对数组赋值,比如此时fz的值为5.观察方阵编写循环即可。

}

for(x=zqq-y-2;x>=y;x--){

arr[zqq-y-1][x]=++fz;               //同上,这里赋值的是思路3中(1)。

}

for(x=zqq-y-2;x>=y+1;x--){

arr[x][y]=++fz;                       //同上。注意循环判定条件的变化。

}

}

for(int i=0;i

{

for(int j=0;j

System.out.print(arr[i][j]+" ");

}

System.out.println();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值