Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-打印X^X^X正方形_Java_Loops - Fatal编程技术网

Java-打印X^X^X正方形

Java-打印X^X^X正方形,java,loops,Java,Loops,我有一个任务要做,我的任务是打印X^X的X个正方形。例如,输入“3”的正确输出是下图 此处示例: 我的代码: Scanner s=新的扫描仪(System.in); int基,k=0; System.out.println(“输入一个数字并绘制一些正方形”); base=s.nextInt(); int bb=基准*基准; 对于(int t=0;t您可以使用模运算符(%)拾取每一个第n行。扫描仪s=新扫描仪(System.in); Scanner s = new Scanner (System

我有一个任务要做,我的任务是打印X^X的X个正方形。例如,输入“3”的正确输出是下图

此处示例:

我的代码:

Scanner s=新的扫描仪(System.in);
int基,k=0;
System.out.println(“输入一个数字并绘制一些正方形”);
base=s.nextInt();
int bb=基准*基准;

对于(int t=0;t您可以使用模运算符(
%
)拾取每一个第n行。

扫描仪s=新扫描仪(System.in);
Scanner s = new Scanner (System.in);
int base, k=0;
System.out.println("Enter a number do draw some squares");
base = s.nextInt();
int bb = base*base;

for (int t=0; t<=bb; t++) {
    if (t<bb) {
        if(t%base == 0) {
           System.out.println();
        }
        for (int i=0; i<base; i++) {
            for (k=0; k<=base; k++) {
                if (k<base) 
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
        }
    }
    System.out.println();
}
int基,k=0; System.out.println(“输入一个数字并绘制一些正方形”); base=s.nextInt(); int bb=基准*基准;
对于(int t=0;t当循环计数器可被基数整除时,即当
循环计数器%base=0时,需要更改输出

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("Enter a number do draw some squares: ");
        int base = s.nextInt();
        int bb = base * base;

        for (int i = 1; i <= bb; i++) {
            for (int j = 1; j <= bb; j++) {
                System.out.print(j % base == 0 ? "* " : "*");
            }
            System.out.println(i % base == 0 ? System.lineSeparator() : "");
        }
    }
}

我会使用4个嵌套循环:

静态空白打印方块(int n){
对于(int-boxRow=0;boxRow
打印方块的输出(2)

***
** ** 
** ** 
** ** 
打印方块的输出(3)

******
*** *** *** 
*** *** *** 
*** *** *** 
*** *** *** 
*** *** *** 
*** *** *** 
*** *** *** 
*** *** *** 

@ppawel这是正确的,我添加了一个答案,因为我是在ideone中做的
“\n”
应该是,否则您将在Windows上的某些行末尾得到
\n\r\n
,即混合行分隔符。或者如果(I%base==0)System.out.println();
。我认为这段代码比其他答案中的代码更简洁,因为它只使用了两个循环,而不是三个或多个循环,而且更紧凑,可读性更好。这是一个很好的解决方案,但是您从哪里得到了“n”的输入我想我还是没学会method@Kapaznik哦,对不起,您还没有了解方法?您很快就会了解的。
n
是一个方法参数,它将具有问题代码在
base
中的值。您可以将
n
重命名为
base
,然后删除此处显示的第一行和最后一行。很高兴知道,当我们使用这种方法你不需要使用“扫描器”来获取输入?@Kapaznik如果你想提示用户,你可以这样做。但是还有其他方法来计算数字,例如,你可以硬编码,如下面的答案所示:
printSquares(2)
是对方法的调用,设置
n=2
。尝试添加
System.out.println();
k
for循环之后
Enter a number do draw some squares: 3

*** *** *** 
*** *** *** 
*** *** *** 

*** *** *** 
*** *** *** 
*** *** *** 

*** *** *** 
*** *** *** 
*** *** ***