用Java打印一个正方形的星星
大家好,我的课程有一个任务,就是创建一个算法来制作一个5乘5的正方形,如下所示:用Java打印一个正方形的星星,java,algorithm,Java,Algorithm,大家好,我的课程有一个任务,就是创建一个算法来制作一个5乘5的正方形,如下所示: ***** ***** ***** ***** ***** 我花了好几个小时试着去做,还读了一些教程和书。这是如此令人沮丧,因为我知道如果你知道你在做什么,这一定很容易。有谁能给我一些关于从哪里开始的指导吗?如果我理解正确,您需要的是一个带有5行星星的控制台输出。 您可以使用System.out.print()或System.out.println()将文本输出到控制台,第二个选项是换行 由于必须重复输出,建议将
*****
*****
*****
*****
*****
我花了好几个小时试着去做,还读了一些教程和书。这是如此令人沮丧,因为我知道如果你知道你在做什么,这一定很容易。有谁能给我一些关于从哪里开始的指导吗?如果我理解正确,您需要的是一个带有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很抱歉输入错误,不断地发送;)我喜欢它,但这显然不是他想要的哈你的答案与现有答案有何不同?