Java中的方形显示

时间:2016-03-15 05:25:37

标签: java

我有关于循环的作业,但我很困难。 require输出应为:

***
***
***

当你输入3

我的代码输出是

*
*
*
*
*
*

当我输入3.这是我的代码:

package square_display;
import java.util.Scanner;

public class Square_display 

{
public static void main(String[] args) 
{

    Scanner input= new Scanner(System.in);

    System.out.print("Please enter positive number:  ");
    int number =input.nextInt();


    while (number > 15 || number<=0)
    {
        System.out.println("Don't input value greater than 15"
                + " and negative number");
        System.out.print("Enter number again: ");
        number=input.nextInt();

    }
  for(int row=0; row<number;row++)
  {
    for (int colum = 0; colum < number ; colum++)
    {
            System.out.println("X");
    } 

  }    

感谢您的帮助

5 个答案:

答案 0 :(得分:2)

因为您使用的是println,所以它会将每个字符放在一个单独的行上。您需要在内部循环中使用print,在外部循环中使用空白println

for(int row=0; row<number;row++)
{
    for (int colum = 0; colum < number ; colum++)
    {
        System.out.print("X");
    }
    System.out.println();
}

答案 1 :(得分:1)

过去的美好时光啊。高中作业? 无论如何,我发现你的问题是一个小错误

问题是System.out.println所以基本上你的循环结束了&#34; \ n&#34;或新线。你不想要那个。所以只需做一个正常的System.out.print

此外,现在您的星星只会水平对齐,因此您需要它们在达到用户输入的数字时开始换行。所以在你的第一个中添加一个println,这样你的for循环看起来就像这样

for(int row=0; row<number;row++)
  {
    for (int colum = 0; colum < number ; colum++)
    {
            System.out.print("X");
    } 
    System.out.println();
  }    

如果你想要真正的想象,你可以通过要求他输入行和列号来给予用户更多的控制权。

    System.out.print("Please enter the number of stars in a row:  ");
    int rowNumber =input.nextInt();

    System.out.print("Please enter the number of stars in a column:  ");
    int columnNumber =input.nextInt();

    boolean rowNumberTrue = false;
    boolean columnNumberTrue = false;

    while (!rowNumberTrue && !columnNumberTrue)
    {
        if (rowNumber > 15 || rowNumber<=0 ) {
            System.out.println("Don't input value greater than 15"
                    + " and negative number");
            System.out.print("Enter row number again: ");
            rowNumber = input.nextInt();
        }
        else
            rowNumberTrue = true;

        if (columnNumber > 15 || columnNumber<=0 ) {
            System.out.println("Don't input value greater than 15"
                    + " and negative number");
            System.out.print("Enter column number again: ");
            columnNumber = input.nextInt();
        }
        else
            columnNumberTrue = true;

    }
    for(int row=0; row<rowNumber;row++)
    {
        for (int colum = 0; colum < columnNumber ; colum++)
        {
            System.out.print("*");
        }
        System.out.println("");

    }

享受,希望编程在未来为您提供良好的服务。

答案 2 :(得分:0)

改变你的循环

for(int row=0; row<number;row++)
    {
        for (int colum = 0; colum < number ; colum++)
        {
            System.out.print("X");
        } 
        System.out.println();
    } 

答案 3 :(得分:0)

for (int row = 0; row < number; row++) {
    for (int colum = 0; colum < number; colum++) {
        System.out.print("*");
    }
    System.out.println("");

}

答案 4 :(得分:0)

尝试这样的事情

for (int row = 0; row < num; row++) {
    for (int col = 0; col < num; col++) {
        System.out.print("*");
    }
    System.out.println();
}