Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 带星号的爪哇半钻石&x27;s(用于循环)_Java_Asterisk - Fatal编程技术网

Java 带星号的爪哇半钻石&x27;s(用于循环)

Java 带星号的爪哇半钻石&x27;s(用于循环),java,asterisk,Java,Asterisk,嘿,我在java中绘制半菱形时遇到了嵌套for循环的问题 我需要获得一个用户输入,并用用户在这里指定的行数制作一个半菱形,这是我的代码 public static void diamond(int rows) { int m, n; for (m = 1; m <= rows; m += 2) { for (n = 1; n <= m; n++) { System.out.print("*");

嘿,我在java中绘制半菱形时遇到了嵌套for循环的问题 我需要获得一个用户输入,并用用户在这里指定的行数制作一个半菱形,这是我的代码

public static void diamond(int rows) {
      int m, n;
    for (m = 1; m <= rows; m += 2)
    {
        for (n = 1; n <= m; n++)
        {

            System.out.print("*");
        }
        System.out.println();
    }
  for (int i = rows; i > 0; i -= 2) {

        for (int j = 0; j < i; j++) {

            System.out.print("*");
        }
        System.out.println("");
    }
}
publicstaticvoiddiamond(int行){
int m,n;

对于(m=1;m这是一个逻辑错误。请检查您的代码:

假设他们输入5作为行计数

然后,第一个for循环将循环执行,从
m=1、
开始,然后是3,然后是5。嵌套的for循环也很好——它只是画了一个“*”等于m值的倍数

然而,输入是5,对吗?第二个for循环集
i=rows,
因此
i
将开始等于5。您已经在第一个for循环中绘制了最长的一行,其中有5个星号。现在,由于您正在设置
i=5,
您正在绘制另一行,其中有5个星号。您想要作为第二个f或者,是这样的:

for(int i=rows-2;i>0;i-=2){
…


这样,第二个for循环就不会像第一个for循环那样再次绘制最长的行了。

这应该会有很大帮助。这是你能找到的最佳答案/示例……看看它。它具备了制作半菱形指向下方所需的一切

  for (int line = n - 1; line >= 1; line--)
  {
      for (int spaces = n - line; spaces >= 0; spaces--)
          System.out.print(" ");

      for(int i = 1; i < line + line; i++)
          System.out.print("*");

      System.out.println();
  }

  keyboard.close();
用于(int line=n-1;line>=1;line--)
{
对于(int spaces=n-line;空格>=0;空格--)
系统输出打印(“”);
对于(int i=1;i
} }

这可能会对您有所帮助

for(int i = 0;i<5;i++) {
    for(int j= 0;j<i;j++) {
        System.out.print("*");
    }
    System.out.println("");
}

for(int i = 5;i>0;i--) {
    for(int j=0;j<i;j++) {
        System.out.print("*");
    }
    System.out.println("");
}
for(inti=0;i这可能会有所帮助

import java.util.Scanner;

public class HalfDiamond
{
    public static void main(String[] args) 
    {
        int n;
        Scanner obj=new Scanner(System.in);
        System.out.print("Enter the number of Rows:");
        n=obj.nextInt();
        for(int i=1;i<=n;i=i+2)
        {
            for(int j=1;j<=i;j++)
            {
                if(i%2==1)
                    System.out.print("*");
            }
            System.out.println();
        }
        for(int i=n-2;i>=1;i=i-2)
        {
            for(int j=1;j<=i;j++)
            {
                if(i%2==1)
                    System.out.print("*");
            }
            System.out.println();
        }
    }
}
import java.util.Scanner;
公共级半钻石
{
公共静态void main(字符串[]args)
{
int n;
扫描器obj=新扫描器(System.in);
System.out.print(“输入行数:”);
n=obj.nextInt();

因为(int i=1;我太感谢你了,我没有仔细检查它!我很感激!