Java嵌套循环三角[基础]

时间:2014-03-06 04:45:22

标签: java loops nested logic

所以任务是让系统输出一个三角形,其中的空格在x之间递增(为了便于阅读,添加了破折号代替空格):

XX
X-X
X - X
X - X
X ---- X
X ----- X
X ------ X
x ------- x

所以,我之前已经做过这个并且看起来很容易,但我遇到的问题是让初始空间量正确。我想举例说明如何做到这一点以及为什么它尽可能明确地说明,谢谢。这是我到目前为止的代码,以及输出:

    Scanner in = new Scanner(System.in); 
    System.out.println("How many columns");
    col = in.nextInt();
    for (int i = 0; i < col; i++)
    {
        System.out.print("#");
        for(int j = 0; j < (i+ 1); j++)
        {
            System.out.print(" ");
        }
        System.out.print("#");
        System.out.println();
    }

输出(当cols = 4时):
X-X
X - X
X - X
x ---- x

真正感谢所有帮助:)

3 个答案:

答案 0 :(得分:0)

我认为问题在于最初设定的r值。不需要设置新变量r。

如果i小于j,则循环不会第一次执行,并且循环执行比外部for循环的每个先前迭代多1步

答案 1 :(得分:0)

如下所示更改j的条件。你也将变量声明为col并像cols一样使用它。所以先做出更正。

Scanner in = new Scanner; 
System.out.println("How many columns");
col = in.nextInt();
for (int i = 0; i < col; i++)
{
    System.out.print("#");
    for(int j = 0; j < i; j++)
    {
        System.out.print(" ");
    }
    System.out.print("#");
    System.out.println();
}

答案 2 :(得分:0)

public static void main(String[]args){
System.out.println("How many columns?");
int columns = new Scanner(System.in).nextInt();

for(int i=0; i<=columns; i++){
  String toPrint = "x";
  for(int cols=0; cols<i; cols++){
      toPrint+=" ";
  }
  System.out.println(toPrint+"x");

}

}