JavaSE基础:用多组输入打印 ‘X‘ 图形

这篇文章带大家用循环来实现 多组输入打印一个 'X' 图形,希望能对你有所帮助!

(题目来源:牛客网 X形图案)


首先,让我们来看一下题目要求:

要求如下:

1、需要用循环来实现图案的打印

2、多组输入,数值在2到20之间

3、输入的数表示图案 'X' 正斜线和反斜线的长度

我们尝试用二维数组的形式来实现图案的打印。

我们看到,如果我们要打印一个正反斜线长度都为3的’X'图案,正斜线上的坐标x、y都相同;反斜线上的坐标y递增,x递减。

我们先将数组元素都初始化为空格,然后再将指定位置上的空格替换为 ' * ',最后再将数组打印出来,就可以实现我们的需求了~

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
            Scanner scan=new Scanner(System.in);
            int X = scan.nextInt();
            int i = 0;
            int j = 0;
            char[][] str = new char[X][X];
            for(i = 0;i < X;i++) {
                for(j = 0;j < X;j++) {
                    str[i][j]=' ';
                }
            }
            for(i = 0;i < X;i++) {
                str[i][i]='*';
                str[X-1-i][i]='*';
            }
            for(i = 0;i < X;i++) {
                for(j = 0;j < X;j++) {
                    System.out.print(str[i][j]);
                }
                System.out.println();
            }
        }
}

运行结果如下:

                

但并没有实现题目所要求的多组输入,所以我们需要再加一个输入的循环,在输入数据为空前都能运行程序,打印对应的图案:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
            Scanner scan=new Scanner(System.in);

            //重点在这里!!!
            while(scan.hasNextInt()) {
            int X = scan.nextInt();
            int i = 0;
            int j = 0;
            char[][] str = new char[X][X];
            for(i = 0;i < X;i++) {
                for(j = 0;j < X;j++) {
                    str[i][j]=' ';
                }
            }
            for(i = 0;i < X;i++) {
                str[i][i]='*';
                str[X-1-i][i]='*';
            }
            for(i = 0;i < X;i++) {
                for(j = 0;j < X;j++) {
                    System.out.print(str[i][j]);
                }
                System.out.println();
            }
        }
    }
        }
}

接下来我们再运行一下程序看看结果:

通过结果可以看出,我们实现了题目要求的所有功能!


以上就是 JavaSE基础:用多组输入打印 'X' 图形 的全部内容啦~希望能对你有所帮助!有问题欢迎评论区一起讨论交流,你的点赞收藏是对我最大的支持!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值