用Java打印一个正方形的星星

用Java打印一个正方形的星星,java,algorithm,Java,Algorithm,大家好,我的课程有一个任务,就是创建一个算法来制作一个5乘5的正方形,如下所示: ***** ***** ***** ***** ***** 我花了好几个小时试着去做,还读了一些教程和书。这是如此令人沮丧,因为我知道如果你知道你在做什么,这一定很容易。有谁能给我一些关于从哪里开始的指导吗?如果我理解正确,您需要的是一个带有5行星星的控制台输出。 您可以使用System.out.print()或System.out.println()将文本输出到控制台,第二个选项是换行 由于必须重复输出,建议将

大家好,我的课程有一个任务,就是创建一个算法来制作一个5乘5的正方形,如下所示:

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

我花了好几个小时试着去做,还读了一些教程和书。这是如此令人沮丧,因为我知道如果你知道你在做什么,这一定很容易。有谁能给我一些关于从哪里开始的指导吗?

如果我理解正确,您需要的是一个带有5行星星的控制台输出。 您可以使用
System.out.print()
System.out.println()
将文本输出到控制台,第二个选项是换行

由于必须重复输出,建议将输出语句封装在循环中。最好在嵌套循环中分隔x轴和y轴

为了使输出可修改-对于这种情况,您明天需要输出一个6x6或12x15的正方形,而无需任何代码修改,我将使循环的限制参数化

总而言之,是这样的:

public void printStartSquare(int width, int height){
    for(int i = 0; i < height;i++){
        for(int j = 0; j < width;j++){
            System.out.print("*");
        }
        System.out.println("");
    }
}
public void printStartSquare(整数宽度、整数高度){
对于(int i=0;i
您可能知道并理解如何用Java创建“Hello World”风格的程序。 现在想一想,你会如何让同一个程序打印5次“Hello World”

在那之后,想想你将如何让它写N次“Hello World”。
然后,考虑如何输出一系列N颗星


祝你好运

似乎应该有一个变量
x
等于维度(5)。从
1-x
循环的
循环
i
。它是一个
for
循环
j
,从
1-x
循环。
j
循环输出
*
,或将
*
附加到字符串。在
j
循环之后,
i
循环执行新行

此解决方案将允许任何大小的方形网格

int size = input;
for (i=0; i<size; i++){
   for (j=0; j<size; j++){
       // output a single "*" here
   }
   // output a new line here
}
int size=输入;

对于(i=0;i这也适用于你,但教授会皱眉,因为你在网上找到了答案,而自己没有想到

System.out.println("*****\n*****\n*****\n*****\n*****");

如果我没弄错的话,那么它是关于一个给定N的NxN平方。你的问题是关于N:=5,但是你的评论让我假设你必须编写一个更一般的解决方案

将必须完成的工作分成更基本和更小的问题:

  • 创建一个包含
    *
    N次的
    字符串
  • 使用生成的字符串N次调用System.out.println()
  • 我是这样做的:

    class Main {
      public static void main(String[] args) {
        int size = 25;
        int pos = 0;
        for(int i = 0; i<size; i++){
          if(pos % 5 == 0){
            System.out.println();
          }
          System.out.print("*");
          pos++;
        }
      }
    }
    
    主类{
    公共静态void main(字符串[]args){
    int size=25;
    int pos=0;
    

    对于(int i=0;iHomework?你应该发布你的代码并寻求帮助……请别人帮你做这件事并不会提高你的技能。@gareth:我花了好几个小时试图做这件事,还阅读了教程和书籍-很抱歉,但我忍不住认为你在撒谎。你需要一个
    循环和
    系统。输出。打印
    -这些ngs是每本书和教程所涵盖的最早的内容之一。请进一步解释这些要求。例如,为什么
    system.out.printline(“******\n******\n******\n******\n******\n******\n”)
    不是一个有效的答案(如果我记得语法错误,请原谅我,我已经有一段时间没有使用java了)谢谢你诚实地说这是家庭作业。我们大多数人都非常感激。@derobert这是
    System.out.println()
    :)如果你想把它写得如此详细,就用伪代码吧:更容易理解。这不是与
    家庭作业
    背道而驰吗?不知道如何在不泄露的情况下做到这一点。伪代码意味着用一种不实际编译(甚至可能没有正式定义)的语言编写的代码因此,您不会用java编写它。例如,您的循环语法可能是“repeat size times”或“i从0到size-1的循环”。或者,用HyperTalk编写,因为这样每个人都会认为它的伪代码:-POk,下次会尝试。谢谢。哦,我还应该提到,伪代码的正常使用是作者不处理各种细节。例如,如果我在写一本算法书,我可能不想处理所有的内存管理t C需要(因为它会模糊正在实现的实际算法),或者Java喜欢长行(页面只有这么宽),等等。它还可能使编写过程更容易理解,因为“将i追加到列表l的末尾”是所有人都能理解的,但是
    l.push_back(i)
    (C++STL)也许不是。谢谢,伙计们,我会继续努力完成这一切很有趣。我想我只是需要休息一下,然后我会继续。我不想让你们做我的家庭作业,只是“指导”谢谢。这会使一个6x5的正方形,而不是一个正方形6x6@JohnB不,不会的,我测试过了。否决票是怎么回事?否决票是针对前一篇文章的“****”,我根据您的编辑清除了它。正如其他人指出的那样,不鼓励像您一样发布一个完整的
    家庭作业解决方案。@John B很抱歉输入错误,不断地发送;)我喜欢它,但这显然不是他想要的哈你的答案与现有答案有何不同?