Java ';正方形';其轮廓为*';其内部填充有字符“quot;”&引用;

Java ';正方形';其轮廓为*';其内部填充有字符“quot;”&引用;,java,Java,我需要画一个正方形,它的轮廓是所有的*,内部是用字符(点)填充的。 还有一个输入将决定正方形的大小。 这就是我目前所拥有的。 我想我需要一个“如果”语句,但不知道如何实现它。 到目前为止,这段代码将通过BIO用户输入绘制一个正方形* 提前感谢:) 公共类主 { 公共静态void main(字符串参数[]) { int stars=BIO.getInt(); INTA=1; (a我将把这个问题分解成几个步骤。试着自己找出代码 您必须打印以下内容: 正方形的顶部。这将是一系列*星,长度为星,例如*

我需要画一个正方形,它的轮廓是所有的
*
,内部是用字符
(点)填充的。 还有一个输入将决定正方形的大小。 这就是我目前所拥有的。 我想我需要一个“如果”语句,但不知道如何实现它。 到目前为止,这段代码将通过BIO用户输入绘制一个正方形
*

提前感谢:)

公共类主
{
公共静态void main(字符串参数[])
{
int stars=BIO.getInt();
INTA=1;

(a我将把这个问题分解成几个步骤。试着自己找出代码

您必须打印以下内容:

  • 正方形的顶部。这将是一系列*星,长度为
    ,例如
    ******
  • stars
    许多中间位。这将是一个*开头,然后是一系列。长度为
    stars-2
    ,然后是一个*结尾,例如
    *…*
  • 正方形的底部。与顶部完全相同

for(int i=0;i
我使用一个二维数组来存储带有嵌套循环的正方形的*和.的字符值,以生成数组并将其打印出来。生成数组时,使用if else语句确定是否生成正方形的边框,选择是否将*或.放入数组的此索引中

Scanner scanner = new Scanner(System.in);
System.out.print("Square size: ");
int size = scanner.nextInt();

char[][] square = new char[size][size];                         //two-dimen array helps visualize square shape you want

for (int row=0; row<size; row++) {
    for (int col=0; col<size; col++) {
        if (row==0 || row == size-1 || col==0 || col==size-1) { //if border of square
            square[row][col] = '*';
        }
        else {                                                  //if inside square
            square[row][col] = '.';
        }
    }
}

for (char[] row : square) {
    System.out.print("\n");
    for (char col : row) {
        System.out.print(col);
    }
}
Scanner Scanner=新的扫描仪(System.in);
系统输出打印(“方形尺寸:”);
int size=scanner.nextInt();
char[][]square=new char[size][size];//二维数组有助于可视化所需的方形形状

对于(int row=0;row,使用基本循环结构:

for (int row = 0; row < stars; row++) {
    for (int col = 0; col < stars; col++) {
        char c;
        if (CONDITION)
            c = '*';
        else
            c = '.';
        System.out.print(c);
    }
    System.out.println();
}
for(int row=0;row

你应该自己弄清楚
条件
。想想
x
y
在你想打印
*
而不是

的情况下需要做些什么。如果你想打印一个
的话,名字会使你的工作变得模糊。把
a
当作你的工作,你可能会更容易概念化“垂直坐标”和
starsNumber
作为您的“水平坐标”。"然后,您可以通过检查水平坐标和垂直坐标来决定是打印
*
还是打印
。您应该自己计算特定的签出。可以说,像Ali AK那样只使用一个双嵌套循环,并决定是打印
*
还是打印
基于
a
starsNumber
的值(可能称为
i
j
y
x
).@hexaflexagonal是的,但我试着让这尽可能直观。如果你想的话,你可以发布另一个答案。谢谢,我想我现在明白了。只是有一个瞬间我只是一片空白。我真的不知道从哪里开始。谢谢。想知道是否有其他方法可以这样做吗?
Scanner scanner = new Scanner(System.in);
System.out.print("Square size: ");
int size = scanner.nextInt();

char[][] square = new char[size][size];                         //two-dimen array helps visualize square shape you want

for (int row=0; row<size; row++) {
    for (int col=0; col<size; col++) {
        if (row==0 || row == size-1 || col==0 || col==size-1) { //if border of square
            square[row][col] = '*';
        }
        else {                                                  //if inside square
            square[row][col] = '.';
        }
    }
}

for (char[] row : square) {
    System.out.print("\n");
    for (char col : row) {
        System.out.print(col);
    }
}
for (int row = 0; row < stars; row++) {
    for (int col = 0; col < stars; col++) {
        char c;
        if (CONDITION)
            c = '*';
        else
            c = '.';
        System.out.print(c);
    }
    System.out.println();
}