Member 13636207 Ответов: 2

Я хочу напечатать шаблон "8", используя звезды(*). Мой пробный код ниже, который показывает неправильный вывод.


class Stars 
{
	public static void main(String[] args) 
	{
		int n= 5;
		for(int i=0;i<=n;i++)
		{
			for(int j=0;j<=n;j++)
			{
				if(i==0||i==n||i==n/2||j==0||j==n)
				{
				System.out.print("*   ");
				}
			}
				
			System.out.println(" ");
			System.out.println(" ");
		
	}
}

}
[edit]добавлен блок кода - OriginalGriff[/edit]

Что я уже пробовал:

Я искал в google, но не смог найти решения.

2 Ответов

Рейтинг:
1

CPallini

Вы забыли else...

class Stars
{
  public static void main(String[] args)
  {
    int n= 5;
    for(int i=0;i<=n;i++)
    {
      for(int j=0;j<=n;j++)
      {
        if(i==0||i==n||i==n/2||j==0||j==n)
          System.out.print("*");
        else
          System.out.print(" ");

      }
      System.out.println(" ");
      System.out.println(" ");
    }
  }
}


Рейтинг:
0

OriginalGriff

Вы не "найдете решение" в интернете, потому что это ваша домашняя работа, и вы должны сделать это сами.

Посмотрите на свой код: почему их два println команды подряд?
Почему вы думаете, что единственная другая вещь, которую вы должны напечатать, - это звезда, за которой следуют три пробела?

Посмотрите, что вам нужно напечатать:

*****
*   * 
*****
*   *
*****
Таким образом, каждый раз вокруг вашего цикла вы должны либо печатать"*", либо"'
Начните с того, что отбросьте тело своей внутренней петли и подумайте о том, что вы делаете.
Номер строки нечетный или четный? Если это странно, вы всегда печатаете звезду.
если это не так, вы печатаете пробел, если только он не является первым или последним столбцом при печати пробела.
После внутреннего цикла вы печатаете одну пустую строку.