Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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 使用循环输出ASCII菱形形状_Java_Ascii Art - Fatal编程技术网

Java 使用循环输出ASCII菱形形状

Java 使用循环输出ASCII菱形形状,java,ascii-art,Java,Ascii Art,我正试图用Java编写一个程序,从用户那里捕获一个整数(假设数据有效),然后根据整数的大小输出一个菱形,即用户输入5,输出将是: --*-- -*-*- *---* -*-*- --*-- 到目前为止,我已经: if(sqr

我正试图用Java编写一个程序,从用户那里捕获一个整数(假设数据有效),然后根据整数的大小输出一个菱形,即用户输入
5
,输出将是:

--*--
-*-*-
*---*
-*-*-
--*--
到目前为止,我已经:

if(sqr<0){
//否定的
System.out.print(“正方形的边必须为正数”);
}
如果(sqr%2==0){
//甚至
系统输出打印(“#大小(+sqr+”)无效必须为奇数”);
}否则{
//奇怪的
h=(sqr-1)/2;//计算正方形的中点
//System.out.println();
对于(j=0;j
它只输出:

--*--
--*--
--*--
--*--
--*--

我正在考虑降低
h
的值,但这只会产生钻石的左侧。

看看你的情况:

如果(i!=h)
这只查看列号
i
和中间点
h
。 您需要一个条件来查看列号和行号。更准确地说,您需要一个条件来查看列号、行号以及列号与中间点的距离。
由于这是一个家庭作业问题,我将决定精确的公式留给你,但是如果你需要的话,我愿意给出更多的提示。祝你好运

void Draw(内部sqr){
int half=sqr/2;
for(int行=0;行

好的,这是代码,但当我看到S.L.Barth的评论时,我才意识到这是一个家庭作业。因此,我强烈建议您在使用此代码作为最终版本之前,先了解此代码中编写的内容。请随时提问

您可以使用两个嵌套for循环,从
-h
h
,其中
h
是半个菱形。钻石的边缘是在以下情况下获得的:

Math.abs(i)+Math.abs(j)=h
如果用户输入
n=5
,则
h=2
,菱形如下:

n=5, h=2
--*--
-*-*-
*---*
-*-*-
--*--

//用户输入
int n=9;
//半颗钻石
int h=n/2;
//输出菱形
System.out.println(“n=“+n+”,h=“+h”);

对于(int i=-h;我也认为第一行和最后一行是其他行(仅1*iso 2)的特例@gastush不一定。如果条件由两部分组成,只有其中一部分需要计算为“真”才能打印a*。请您向我解释一下Math.abs()是什么函数有,我认为它给出任何数字的正值对吗?我已经在代码中添加了注释,以表明我理解正在发生的事情。
n=9, h=4
----*----
---*-*---
--*---*--
-*-----*-
*-------*
-*-----*-
--*---*--
---*-*---
----*----